JSP属性文件读取

时间:2016-06-18 12:25:20

标签: spring hibernate maven jsp apache-tiles

我正在制作一个网络应用程序。在此应用程序中,我使用mavenSpring frameworkHibernate frameworkJSPApache tiles

这个应用程序仍然是英语。所以现在我的要求是转换应用程序是葡萄牙语。因此,我为葡萄牙语创建了一个属性文件,并在需要时使用此属性文件。

在我的应用程序中创建两个属性文件,
1表示英语(messages.properties),2表示葡萄牙语(messages_pt.properties

在我的jsp页面中,当我从messages.properties文件中获取值时正常工作但当时从messages_pt.propertie文件获取时工作不正常,因为在messages_pt.properties文件中包含一些特殊字符

查看我的两个属性文件

messages.properties
    gas=Gas

messages_pt.properties
    gas=Gás

现在回答我的问题......

在JSP页面中,我使用fmt tag library按属性文件中的键读取值 我的jsp页面就像这样

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        ..............
    </head>
    <body>
        ..............
        <fmt:message key="gas" />
    </body>
</html>

因此,当gas文件从messages_pt.properties文件获取值时,获取G�s值。

我在谷歌搜索解决方案并获得一些解决方案,但没有人能解决我的问题

我正在申请下面的解决方案

1)在JSP页面中,我在第一行和元标记中添加contentType。请参阅上面的jsp页面。

2)我在CharacterEncodingFilter文件中添加了web.xml,此过滤器位于首页过滤器中。

<filter>  
        <filter-name>encodingFilter</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>  
        <init-param>  
           <param-name>forceEncoding</param-name>  
           <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 

3)我在defaultEncoding文件

中的messageSourceBean中添加了xxx-servlet.xml
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>classpath:properties/messages</value>
            </list>
        </property>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="useCodeAsDefaultMessage" value="true"/>
    </bean>

4)我在project.build.sourceEncoding文件中添加了pom.xml

<properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     .......
</properties>

5)我尝试了下面的代码

<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> 
<p><spring:message code="label.menu"/></p>

但现在可以解决我的问题了。

如果有人知道任何其他解决方案,请告诉我。

1 个答案:

答案 0 :(得分:2)

我在过去遇到了同样的问题,我做了以下解决方案,请参阅附带的截图。

enter image description here

转到文件属性&gt;资源&gt;

将您的内容类型更改为UTF-8