spring mvc 400,The request sent by the client was syntactically incorrect的问题

这是今天项目中遇到的一个让我纠结的问题,当时特郁闷,找了半天也没找到原因.最后一点一点的

测试提交数据才慢慢发现其中的端倪,最后也给遇到类似问题的朋友一点建议吧!

我的项目是运用SpringMVC作为控制层,然后是添加页面,页面需要提交一堆数据到服务器,当

写完数据提交的时候,并没有如我想象的那样跳入控制层,而跳入下面页面:

这个让我纠结了,以前都没遇到过,这个错误的原因看描述应该是说,客户端提交的请求在语法有错误,

想了半天,最后想到了,可能是数据传入后台的时候进行绑定出错了,然后发现我提交的数据有两个地方

可能有点问题,一个是date类型,一个是checkbox传入的值,后台对应的是String和boolean型。Date类型

在数据绑定时需要在控制层写类型转换器,然后在我的代码中加了一下代码:

[java]  view plain copy print ?
  1. @InitBinder    
  2.     public void initBinder(WebDataBinder binder) {    
  3.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");    
  4.         dateFormat.setLenient(false);    
  5.         binder.registerCustomEditor(Date.classnew CustomDateEditor(dateFormat, false));   
  6.     }  

[java]  view plain copy print ?
  1. SimpleDateFormat("yyyy-mm-dd") 中传入的格式一定是前台传过来的格式,  
然后运行,还是报错,最后发现是checkbox传入的问题,把checkbox的value改为true,后台POJO中

属性类型改为Boolean类型,最后运行成功.


提示:一般出现这个问题,描述已经很清楚了,是因为请求语法问题,用GET方法提交,看看URL中参数格式是不是不正确。不对的加以修改,或者需要转换的就自己写个转换器,如上图中的代码块.具体可以查看SpringMVC的数据绑定知识。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值