2016-12-30 52 views
8

我使用Java 6,JBoss 7.1.3和Spring 3.2.11.RELEASE。尽管我们设置这个在我们的应用程序上下文如何在不触及每个JSP文件的情况下为我的所有JSP设置pageEncoding?

<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注意到,特殊字符不正确,除非我们在JSP页面的顶部指定

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 

呈现。这对于一个JSP来说很好,但是添加这些指令需要通过整个应用程序是很麻烦的。是否还有更多的全局地方可以指定它,比如在Spring上下文中或者其他地方,它会将上面的指令普遍地添加到我们所有的JSP页面中?

回答

0

添加下面的系统属性也:

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

给了我一个去,但它没有奏效。 – Dave

0

把下面在web.xml 。

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

嗨,你的答案与1/6上输入的code_angel不同吗? – Dave

+0

我添加了一个可选的行'default-content-type'来使其不同,再次;) –

+0

K,让我给它一个去那个指令,因为原来的答案,因为你ahd它不适合我。在数据库中存储为'和'证据''(注意聪明的引号,希望那些剪切和粘贴)仍然被渲染为'和?证据? ' – Dave

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

我忘了提及这个配置已经存在于我的web.xml中,但问题仍然存在。 – Dave

+0

@Dave尝试使用 Boldbayar

相关问题