springMVC之普通表单提交

在J2EE开发中用户提交数据最常用的方式就是表单提交,而今MVC已经成为业界公认的开发模式。常用架构:SSH(Spring+Struts+Hibernate)、SSM(Spring+SpringMVC+Mybatis)等。下面就来分析SSM架构中SpringMVC如何接受表单数据。

在HTML中,表单分为两种形式:普通表单、文件上传表单。本文介绍SpringMVC如何接受普通表单数据

  • 首先,在JSP中编写表单结构(normalForm.jsp) 
    springMVC之普通表单提交
     注意:复选框的数据为中文测试数据
  • 映射表单实体(SimpleForm.java)
    springMVC之普通表单提交
     
  • 接下来就是开发控制器: Controller(Handler)
    springMVC之普通表单提交
     注意:如果表单中包含中文则需要设置编码,如果表单为 POST 方式提交则可以在 web.xml 中添加如下配置(GET 方式提交配置无效)
    Xml代码  springMVC之普通表单提交
    1. <!-- POST 中文乱码 -->  
    2. <filter>  
    3.     <filter-name>encoding</filter-name>  
    4.     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    5.     <init-param>  
    6.         <param-name>encoding</param-name>  
    7.         <param-value>UTF-8</param-value>  
    8.     </init-param>  
    9.     <init-param>  
    10.         <param-name>forceEncoding</param-name>  
    11.         <param-value>true</param-value>  
    12.     </init-param>  
    13. </filter>  
    14. <filter-mapping>  
    15.     <filter-name>encoding</filter-name>  
    16.     <url-pattern>/*</url-pattern>  
    17. </filter-mapping>  
     
  • 强制中文转码参数转换器(StringEncodingConverter.java)
    springMVC之普通表单提交
     注意:当前转换器不仅仅对 java.lang.String 有效,泛型参数同样支持,如:List<String>等
  • 千万不要忘记最后一步:启用转换器
    springMVC之普通表单提交tips:如果启用当前转换器则无需配置POST字符转码拦截器

至此,大功告成!看看成果如何。

转换过程观察:


springMVC之普通表单提交

转换结果观察:
 
springMVC之普通表单提交
 

项目代码请下载附件:ssmFU.zip(maven)

ssmFU.zip (126.5 KB)