您的位置:首页 > 编程语言 > Java开发

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

2014-11-11 14:52 881 查看
这是今天项目中遇到的一个让我纠结的问题,当时特郁闷,找了半天也没找到原因.最后一点一点的

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

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

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



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

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

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

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

[java] view
plaincopyprint?

@InitBinder

public void initBinder(WebDataBinder binder) {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");

dateFormat.setLenient(false);

binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));

}

[java] view
plaincopyprint?

SimpleDateFormat("yyyy-mm-dd") 中传入的格式一定是前台传过来的格式,

然后运行,还是报错,最后发现是checkbox传入的问题,把checkbox的value改为true,后台POJO中

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

提示:一般出现这个问题,描述已经很清楚了,是因为请求语法问题,用GET方法提交,看看URL中参数格式是不是不正确。不对的加以修改,或者需要转换的就自己写个转换器,如上图中的代码块.具体可以查看SpringMVC的数据绑定知识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐