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";}