写了个SSH2框架的demo,数据库中有两个表,班级表和学生表,双向关联一对多的关系。大致功能如下面三个界面
在功能实现的过程中,发现前台jsp页面往后台action传值时,文本框输入为中文时会出现乱码的问题。一种方法是在action接值的时候,对所接收的值进行编码转换。例如我接的值是文本框中输入的学生姓名,统一为UTF-8的格式。
String name = new String(student.getStuName().getBytes("iso-8859-1"),"utf-8");
上述方法需要对每一个接的值进行转换,比较繁琐。第二种方法是通过过滤器进行配置,网上的搜的方法主要是编写一个过滤器类,并在web.xml中配置好,尝试之后总是失败。后来发现,spring有自带的过滤器,不需要手动写,只需在web.xml中配置即可。
<!-- Spring 自带编码过滤器,解决中文乱码问题 -->
<filter>
<filter-name>Spring character encoding filter</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>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>