JSP 属性 文件读取
JSP property file read
我正在制作一个网络应用程序。在此应用程序中,我使用 maven
、Spring framework
、Hibernate framework
、JSP
、Apache tiles
.
这个应用程序仍然是英文的。所以现在我的要求是转换应用程序是葡萄牙语。所以我为葡萄牙语创建了一个属性文件,并在需要时使用这个属性文件。
在我的应用程序中创建两个属性文件,
1 个英语语言(messages.properties
),2 个葡萄牙语语言(messages_pt.properties
)
在我的 jsp 页面中,当我从 messages.properties
文件中获取值时,当时工作正常,但是当从 messages_pt.propertie
s 文件中获取值时,当时工作不正常,因为在 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>
所以当从 messages_pt.properties
文件中获取 gas
键的值时得到 G�s
值。
我在 google 中搜索解决方案并获得了一些解决方案,但没有人能解决我的问题
我正在申请以下解决方案
1) 在 JSP 页面中,我在第一行和元标记中添加了 contentType。请查看上面我的 jsp 页面。
2) 我在 web.xml
文件中添加了 CharacterEncodingFilter
并且此过滤器位于起始页的第一个过滤器中。
<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) 我在 xxx-servlet.xml
文件
中的 messageSourceBean
中添加了 defaultEncoding
<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) 我在 pom.xml
文件中添加了 project.build.sourceEncoding
。
<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>
不过现在可以解决我的问题了
如果有人知道任何其他解决方案,请告诉我。
我过去遇到过同样的问题,我执行了以下解决方案,请参阅随附的屏幕截图。
转到文件属性 > 资源 >
将您的内容类型更改为 UTF-8
。
我正在制作一个网络应用程序。在此应用程序中,我使用 maven
、Spring framework
、Hibernate framework
、JSP
、Apache tiles
.
这个应用程序仍然是英文的。所以现在我的要求是转换应用程序是葡萄牙语。所以我为葡萄牙语创建了一个属性文件,并在需要时使用这个属性文件。
在我的应用程序中创建两个属性文件,
1 个英语语言(messages.properties
),2 个葡萄牙语语言(messages_pt.properties
)
在我的 jsp 页面中,当我从 messages.properties
文件中获取值时,当时工作正常,但是当从 messages_pt.propertie
s 文件中获取值时,当时工作不正常,因为在 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>
所以当从 messages_pt.properties
文件中获取 gas
键的值时得到 G�s
值。
我在 google 中搜索解决方案并获得了一些解决方案,但没有人能解决我的问题
我正在申请以下解决方案
1) 在 JSP 页面中,我在第一行和元标记中添加了 contentType。请查看上面我的 jsp 页面。
2) 我在 web.xml
文件中添加了 CharacterEncodingFilter
并且此过滤器位于起始页的第一个过滤器中。
<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) 我在 xxx-servlet.xml
文件
messageSourceBean
中添加了 defaultEncoding
<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) 我在 pom.xml
文件中添加了 project.build.sourceEncoding
。
<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>
不过现在可以解决我的问题了
如果有人知道任何其他解决方案,请告诉我。
我过去遇到过同样的问题,我执行了以下解决方案,请参阅随附的屏幕截图。
转到文件属性 > 资源 >
将您的内容类型更改为 UTF-8
。