SpringMVC下,提交表单报400错:
description The request sent by the client was syntactically incorrect.
根据网上的总结,可能是因为如下几个问题引起的
1.参数指定问题
如果Controller中定义了参数,而表单内却没有定义该字段
@SuppressWarnings("deprecation") @RequestMapping("/hello.do") public String hello(HttpServletRequest request,HttpServletResponse response, @RequestParam(value="userName") String user ){ request.setAttribute("user", user); return "hello"; }
这里,表单内必须提供一个userName的属性!
不想指定的话,你也可以定义这个属性的默认值defaultValue="":
@SuppressWarnings("deprecation") @RequestMapping("/hello.do") public String hello(HttpServletRequest request,HttpServletResponse response, @RequestParam(value="userName",defaultValue="佚名") String user ){ request.setAttribute("user", user); return "hello"; }
也可以指定该参数是非必须的required=false:
@SuppressWarnings("deprecation") @RequestMapping("/hello.do") public String hello(HttpServletRequest request,HttpServletResponse response, @RequestParam(value="userName",required=false) String user ){ request.setAttribute("user", user); return "hello"; }
2.上传问题
上传文件大小超出了Spring上传的限制
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸1024字节=1K,这里是10K --> <property name="maxUploadSize"> <value>10240</value> </property> <property name="defaultEncoding"> <value>UTF-8</value> </property> </bean>
我们工程里面是这个问题引起的,但是我实际示例中发现超过大小是直接报错的。
3.时间转换问题
也有网友说是因为时间转换引起的,而我实际操作中发现报错是:
The server encountered an internal error that prevented it from fulfilling this request
这里也顺便提一下,假如你的Controller要一个时间对象,代码如下:
@SuppressWarnings("deprecation") @RequestMapping("/hello.do") public String hello(HttpServletRequest request,HttpServletResponse response, @RequestParam(value="userName",defaultValue="佚名") String user, Date dateTest ){ request.setAttribute("user", user); System.out.println(dateTest.toLocaleString()); return "hello"; }
而网页上实际给的是
<input type="text" name="dateTest" value="2015-06-07">
这里需要在Controller增加一个转换器
@InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); }
请您到ITEYE网站看 java小强 原创,谢谢!
http://cuisuqiang.iteye.com/ !
自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!
相关推荐
NULL 博文链接:https://dayongge.iteye.com/blog/2269217
NULL 博文链接:https://wujiu.iteye.com/blog/2012300
springmvc 第二个例子(接收表单参数+重定向)
本demo 用来写了springmvc如何接受ajax传集合以及接收form表单传集合
SpringMVC表单标签简介
Springmvc请求处理方法参数Springmvc请求处理方法参数
springmvc各种参数绑定源码实现
前端使用jquery向后台传递数组类型的参数,Java后台直接通过List类型接收,会发现无法取到参数。
SpringMVC请求参数接收 1 GET方法请求参数处理 2 表单参数 3 【非对象】- 非对象类型单个参数接收。 3 【对象】 - 对象类型参数接收。 4 【数组】 - 列表或者数组类型参数。 5 JSON参数 6 URL路径参数 6 文件上传 8 ...
SpringMVC后台接收请求参数的几种方式源码。总结了常用的注解,介绍GET和POST请求方式下的参数传递方法。
SpringMVC接收请求参数区别
springmvc form表单的使用。 简单的说明了如何使用form表单并绑定pojo,包括主子表的form请求到一个pojo
下面小编就为大家分享一篇基于SpringMVC接受JSON参数详解及常见错误总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Servlet、Struts、SpringMVC对于表单重复提交的解决方案
springMVC返回json数据需要的两个架包,加入springMVC使用@ResponseBody才不会报错。
springMVC 采用POST提交的方法接收json格式的参数需要的jar包
SpringMVC表单标签进行数据绑定(图书管理)DemoSpringMVC表单标签进行数据绑定(图书管理)Demo
NULL 博文链接:https://dayongge.iteye.com/blog/2268976
SSH整个的时候,导入Spring配置文件applicationContext.xml出错,需要导入的俩个jar包
SpringMVC入门很简单之表单标签,具体参考博文: http://www.cnblogs.com/liukemng/tag/SpringMVC/