这是我的 JSP 代码
<form:form action="multiplebuttons.html" commandName="buttonForm">
<table>
<tr>
<td width="7%">Name:</td>
<td width="11%"><form:input path="name" /></td><td width="82%"><form:errors cssStyle="color:red" path="name"/></td>
</tr>
<tr>
<td><input type="submit" value="update" /></td><td><input type="submit" value="save" /></td>
</tr>
</table>
</form:form>
这是我的 Controller 代码
@Autowired
@Qualifier("formValidator")
private Validator validator;
@InitBinder
private void initBinder(WebDataBinder binder) {
binder.setValidator(validator);
}
@RequestMapping(value="/views", method = RequestMethod.GET)
public ModelAndView getdata() {
System.out.println("do something");
ModelAndView model = new ModelAndView("views");
model.addObject("name", "Girish");
return model;
}
@RequestMapping(value="/multiplebuttons", method = RequestMethod.GET)
public String showForm(Map model) {
System.out.println("Show form");
ButtonForm Form = new ButtonForm();
model.put("buttonForm", Form);
return "multiplebuttons";
}
@RequestMapping(method = RequestMethod.POST)
public String processForm( @Validated ButtonForm buttonForm, BindingResult result,
Map model) {
System.out.println("Processing..........");
if (result.hasErrors()) {
System.out.println("Has errors");
return "multiplebuttons";
}
return "redirect:views";
}
@RequestMapping("/{name}")
public String editItem(@PathVariable("name") String name, Model model){
ButtonForm form = new ButtonForm();
form.setName(name);
model.addAttribute("buttonForm", form);
return "multiplebuttons";
}
请帮忙。您能告诉我为什么 processForm 方法没有被触发吗?
提前致谢
最佳答案
您应该修改方法processForm()
:
@RequestMapping(value="/multiplebuttons", method = RequestMethod.POST)
public String processForm( @Validated ButtonForm buttonForm, BindingResult result,
Map model) {
System.out.println("Processing..........");
if (result.hasErrors()) {
System.out.println("Has errors");
return "multiplebuttons";
}
return "redirect:views";
}
关于java - 为什么 Spring MVC 4 提交按钮不触发 post 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26463055/