Java 条纹编码的工作原理很奇怪

Java 条纹编码的工作原理很奇怪,java,jsp,encoding,stripes,Java,Jsp,Encoding,Stripes,我将stripes:param中的一些变量发送到另一个actionbean,以便在另一个jsp文件中显示它们。 问题是,如果一个变量有非英语字符,比如(ä,ö,…)条带:param将它们编码为某种有线格式。我在jsp中使用了ecoding标记,但不起作用。 既然stripes:param在stripes:link中,它会是stripes:link吗? 例如,如果第一个jsp中的“fname”有一个类似“ö”的字符,则在第二个jsp中显示时,会将其转换为其他字符! 知道这里发生了什么吗 第一个js

我将stripes:param中的一些变量发送到另一个actionbean,以便在另一个jsp文件中显示它们。 问题是,如果一个变量有非英语字符,比如(ä,ö,…)条带:param将它们编码为某种有线格式。我在jsp中使用了ecoding标记,但不起作用。 既然stripes:param在stripes:link中,它会是stripes:link吗? 例如,如果第一个jsp中的“fname”有一个类似“ö”的字符,则在第二个jsp中显示时,会将其转换为其他字符! 知道这里发生了什么吗

第一个jsp

<stripes:link beanclass="se.theducation.course.ui.action.student.StudentEditExcelAction" event="loadStudent" >
    <stripes:param name="fname" value="${array.getStudent().getFirstName() }" />
    <stripes:param name="lname" value="${array.getStudent().getLastName() }" />
    edit
</stripes:link>
第二个jsp

<table class="solid" style="margin-top: 5px; padding: 5px; width:900px">
    <tr class="solid">
        <td class="solid">
            <tags:labeled label="Firstname:"><br />
            <stripes:text name="fname"/>
            </tags:labeled>
        </td>
        <td class="solid">
            <tags:labeled label="Lastname:"><br />
            <stripes:text name="lname"/>
            </tags:labeled>
        </td>
    </tr>
</table>




似乎问题出在编码上,所以我在我的web.xml中添加了以下servlet过滤器,它可以正常工作

<filter>
    <filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

字符编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
字符编码滤波器
/*

对于我来说,工作示例如下:

将该类复制到项目中,然后将其包含在web.xml中

<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>project.name.SiteFilter</filter-class>
<init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
</init-param>
</filter>   
<filter-mapping>
  <filter-name>CharacterEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

字符编码滤波器
project.name.SiteFilter
编码
UTF-8
字符编码滤波器
/*

对我来说,解决方案是添加

<init-param>
    <param-name>LocalePicker.Locales</param-name>
    <param-value>fr_FR:UTF-8</param-value>
</init-param>

LocalePicker.Locales
fr_fr:UTF-8
在web.xml中的filter
StripesFilter
配置中,定义如下:

<init-param>
    <param-name>LocalePicker.Locales</param-name>
    <param-value>fr_FR:UTF-8</param-value>
</init-param>