在J2EE开发中用户提交数据最常用的方式就是表单提交,而今MVC已经成为业界公认的开发模式。常用架构:SSH(Spring+Struts+Hibernate)、SSM(Spring+SpringMVC+Mybatis)等。下面就来分析SSM架构中SpringMVC如何接受表单数据。
在HTML中,表单分为两种形式:普通表单、文件上传表单。本文介绍SpringMVC如何接受普通表单数据。
- 首先,在JSP中编写表单结构(normalForm.jsp)
注意:复选框的数据为中文测试数据 - 映射表单实体(SimpleForm.java)
- 接下来就是开发控制器: Controller(Handler)
注意:如果表单中包含中文则需要设置编码,如果表单为 POST 方式提交则可以在 web.xml 中添加如下配置(GET 方式提交配置无效)<!-- POST 中文乱码 --> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- 强制中文转码参数转换器(StringEncodingConverter.java)
注意:当前转换器不仅仅对 java.lang.String 有效,泛型参数同样支持,如:List<String>等 - 千万不要忘记最后一步:启用转换器
tips:如果启用当前转换器则无需配置POST字符转码拦截器
至此,大功告成!看看成果如何。
转换过程观察:
转换结果观察:
项目代码请下载附件:ssmFU.zip(maven)