如何在不触及每个 JSP 文件的情况下为所有 JSP 设置 pageEncoding?
How do I set pageEncoding for all my JSPs without touching each JSP file?
我正在使用 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 页面?
同时添加以下系统 属性:
<property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
在您的 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
将以下内容放入您的 web.xml .
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
使用过滤器怎么样?
<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>
我正在使用 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 页面?
同时添加以下系统 属性:
<property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
在您的 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
将以下内容放入您的 web.xml .
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
使用过滤器怎么样?
<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>