【问题标题】:How do I set pageEncoding for all my JSPs without touching each JSP file?如何在不触及每个 JSP 文件的情况下为所有 JSP 设置 pageEncoding?
【发布时间】:2016-12-30 20:56:27
【问题描述】:

我正在使用 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 页面?

【问题讨论】:

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


    【解决方案1】:

    在您的 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】:

      还添加以下系统属性:

      <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 您好,您的答案与 1/6 输入的 code_angel 的答案有何不同?
        • 我添加了一个可选行 default-content-type 以使其再次不同;)
        • K,让我试试那个指令,因为你的原始答案对我不起作用。特别是存储在数据库中的内容为“和“证据”'(注意智能引号,希望那些剪切和粘贴的引号)仍然被呈现为'和?证据? '
        【解决方案4】:

        使用过滤器怎么样?

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

        【讨论】:

        • 我忘了提到这个配置已经存在于我的 web.xml 中,但问题仍然存在。
        • @Dave 尝试使用 跨度>
        猜你喜欢
        • 2011-09-14
        • 2020-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-11
        • 1970-01-01
        • 2019-09-23
        相关资源
        最近更新 更多