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

Struts2 Action中文乱码问题的解决办法

2017-09-19 18:39 786 查看


Struts2 Action中文乱码问题的解决办法

转载 2016年09月23日
14:59:58

1038

0

0

一、前台表单
<form action="orgAdd.action" method="post">
组织名称:<input type="text" name="name" value=""/>
组织描述:<input type="text" name="description" value=""/>
<input type="submit" value="提交" />
</form>
1
2
3
4
5

二、后台Action类
public class OrgAddAction extends ActionSupport {
private String name;
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}

@Override
public String execute() throws Exception {
System.out.println("组织名称:" + name);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

三、结果输出

组织名称:??? 

四、问题解决办法
<struts>
<constant name="struts.i18n.encoding" value="GBK"/>
<package name="struts2" extends="struts-default">
<action name="orgAdd" class="orgAddAction">
<result name="success">/org/index.jsp</result>
</action>
</package>
</struts>
1
2
3
4
5
6
7
8

通过i18n(Internationalization 编码国际化)和 constant标签设置Action的传值编码为”GBK”,当然此编码要跟页面中的编码一致才不会造成中文乱码。

同时需要在web.xml中加上过滤器,如下:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

编码过滤器必须加载在struts之前才能生效。

原文地址:http://blog.chinaunix.net/uid-20550186-id-1927325.html

举报

标签:
struts2 /
中文乱码 /
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: