Struts2请求字符编码

时间:2009-12-24 15:52:34

标签: encoding struts2 request character

我正在使用Struts2。当我通过表单发送ä或ã等“特殊”字符时,接收它的动作会以不同的方式显示这些字符(例如Ã+一个小方块)。我知道我有编码问题,但我无法找到为Struts2配置请求编码的位置。

任何人都可以帮助我吗?

致以最诚挚的问候,

尼尔斯

2 个答案:

答案 0 :(得分:4)

你应该使用字符编码过滤器。在struts过滤器操作之前,只需在web.xml中放入一个过滤器。见下文

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>your.pkg.CharacterEncodingFilter</filter-class>
</filter>

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>*.action</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
</filter-mapping>

只需在编码过滤器中输入您的代码即可编码“UTF-8”字符。 我也用UTF-8添加了头页编码。

这就解决了这个问题。我也遇到过这个问题。

答案 1 :(得分:2)

回答我自己的问题:

链接应始终进行URL编码。 s:url编码设置为true似乎不能正常工作(或误用?但我怀疑)并且它适用于旧的好c:url。