如何在不触及每个JSP文件的情况下为所有JSP设置pageEncoding?

时间:2016-12-30 20:56:27

标签: spring jsp encoding utf-8 jboss7.x

我正在使用Java 6,JBoss 7.1.3和Spring 3.2.11.RELEASE。尽管我们在应用程序上下文中设置了这个

<bean id="systemPrereqs"
    class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" value="#{@systemProperties}" />
    <property name="targetMethod" value="putAll" />
    <property name="arguments">
        <!-- The new Properties -->
        <util:properties>
            <prop key="org.apache.catalina.connector.URI_ENCODING">UTF-8</prop>
        </util:properties>
    </property>
</bean>

我注意到在我的JSP上,除非我们指定

,否则特殊字符的渲染不正确
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

位于JSP页面的顶部。这适用于一个JSP,但是必须通过添加这些指令的整个应用程序是很麻烦的。是否有一个更全局的地方我可以指定这个,比如在Spring上下文或某个地方,它会普遍地将上述指令添加到我们所有的JSP页面中?

4 个答案:

答案 0 :(得分:0)

还添加以下系统属性:

cordova.plugins.backgroundMode.disable();

答案 1 :(得分:0)

在web.xml中输入以下内容:

<jsp-config>
  <jsp-property-group>
     <url-pattern>*.jsp</url-pattern>
     <page-encoding>UTF-8</page-encoding>
     <default-content-type>text/html</default-content-type>
  </jsp-property-group>
</jsp-config>

更多信息:https://docs.oracle.com/cd/E17904_01/web.1111/e13712/web_xml.htm#WBAPP539

答案 2 :(得分:0)

将以下内容放入您的web.xml中。

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

答案 3 :(得分:0)

使用过滤器怎么样?

<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>