解决SpringMVC入参出现The request sent by the client was syntactically incorrect请求语法错误方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决SpringMVC入参出现The request sent by the client was syntactically incorrect请求语法错误方法相关的知识,希望对你有一定的参考价值。

使用SpringMVC出现The request sent by the client was syntactically incorrect.请求错误如下:技术分享

可以确定为提交的表单数据和目标方法的入参不一致所导致,表单数据可以多于目标入参个数,但目标参数没有被赋值,则会出现该异常,如下情况:

表单数据:

技术分享

目标方法:

技术分享

Employee字段:

技术分享


比对表单数据和Employee字段,可以发现,表单数据比Employee字段少,再加上目标方法的入参是一个

Employee对象,所以将会出现提交的数据不足,解决的办法:

①直接使用@RequestParam()标签,指定和表单数据相同的入参然后再装配Employee对象

②从数据库中加载一个Employee对象,让表单提交的数据在加载的对象上进行修改,没有修改的字段将会原封不动:

@ModelAttribute

public void getEmployee(@RequestParam(value="id", required=false) 

Integer id,Map<String, Object> map)

{

Employee employee;

if(id != null)

{

     employee = employeeService.getEmpById(id);

     map.put("employee", employee);

     }

}

在加载对象时注意:Employee的所有字段都要查询出来,所以,对于底层的DAO就不能使用懒加载,如果使用了懒加载也将会出现该错误。



以上是关于解决SpringMVC入参出现The request sent by the client was syntactically incorrect请求语法错误方法的主要内容,如果未能解决你的问题,请参考以下文章

springMVC方法入参灵活绑定

springMVC4(12)复杂对象和集合类型入参绑定

解决springMVC文件上传报错: The current request is not a multipart request

学习SpringMVC(十六)之数据绑定流程

springMVC4模型数据绑定全面分析

学习SpringMVC(二十四)之异常处理