Bootstrap

错误400-The request sent by the client was syntactically incorrect

The request sent by the client was syntactically incorrect 说的意思是:由客户端发送的请求是语法上是不正确的。

上网找了很多资料,大部分都是说前端jsp页面的控件名称(name)和controller中接收的参数名称不一致,但是经过仔细对比,并不存在这个问题,怎么回事呢???

还有资料是说,springmvc造成400错误的原因还可能是:

1、提交表单数据类型与model不匹配
2、方法参数顺序不正确

详见http://cuisuqiang.iteye.com/blog/2054234


另外还有一种可能:

form表单中有日期,Spring不知道该如何转换,如要在实体类的日期属性上加@DateTimeFormat(pattern="yyyy-MM-dd")注解


还有一种可能是:如果form表单有一组checkbox,而提交时一个复选框都没有选中,也会出现400错误

详见http://www.cnblogs.com/xiandedanteng/p/4189489.html


可是都解决不了我的问题 T_T

经过反复提交该页面测试,发现问题,就是只有两个文本框不输入数据就提交,才会出现400错误!!!

又经过一系列的百度,发现问题所在:

又一种可能:

因为我是将多个参数作为一个实体传至controller,发现某个文本框为空时,提交就会报错,于是去实体中查看该文本框对应的参数属性,发现与其他参数不同,定义为int类型,于是就懂了。

其实 这是Spring MVC 的数据绑定问题:

如果form表单提交的数据对应实体的字段类型为long,int,double时,而提交时又为空时,就报400错误


解决方案:

1、限制用户在输入这些字段时,必须输入数据,但是在实际使用场景中并不友好

2、将实体的字段类型改为Long,Integer,Double等



;