SpringMVC报错信息为The request sent by the client was syntactically incorrect ()
在数据绑定的时候一定要主意Controller方法中的参数名和jsp页面里的参数名字是否一致或者按照绑定的规范来写,如果不一致,可能回报如下错误:
The request sent by the client was syntactically incorrect ().
从字面上理解是:客户端发送的请求语法错误。实际就是springmvc无法实现数据绑定。
随便举个例子说明:
随便举个例子说明:
<sf:form method="post" commandName="person">
name:<sf:input path="name"/><sf:errors path="name"/><br />
pass:<sf:input path="pass"/><sf:errors path="pass" /><br />
age:<sf:input path="age"/><br />
email:<sf:input path="email"/><br />
<input type="submit" value="修改用户" />
</sf:form>
@RequestMapping(value="/{name}/update" , method=RequestMethod.POST)
public String update(@PathVariable String name1 ,Person person , BindingResult br)
{
System.out.println("...");
if(br.hasErrors())
return "/update";
persons.put(name1,person);
return "redirect:/listPersonInfo";
}
我表单中的path是name,而在Controller的update方法中却为name1.
而我犯的错误是:
我在表单提交页面加的校验 ,而在 Controller的update方法中 校验对象前没有加@Validated,所以也会报这个错误。
所以Controller修改后应为:
@RequestMapping(value="/{name}/update" , method=RequestMethod.POST)
public String update(@PathVariable String name ,@Validated Person person , BindingResult br)
{
System.out.println("...");
if(br.hasErrors())
return "/update";
persons.put(name1,person);
return "redirect:/listPersonInfo";
}