错误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等



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值