我们正在尝试使用Spring ResourceBundleMessageSource和FMT实现国际化。但是当我们在JSP中使用它时,页面显示的值为 ??? message.key ??? 。你能帮助我们解决这个问题吗?真的很感激你的答案。
以下是配置:
spring-servlet.xml条目
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>WEB-INF/messages/msgs</value>
</property> </bean>
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName">
<value>locale</value>
</property> </bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor" />
</list>
</property>
</bean>
在JSP中我们添加了导入的
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:message key="message.key"/>
同样在创建的战争中,我们在WEB-INF / messages文件夹下有msgs.properties文件。
非常感谢帮助识别我们正在犯的错误。谢谢。
答案 0 :(得分:0)
我和你一样使用,我可以使用fmt:message从属性文件中检索消息。您可以尝试更改资源包:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:messages</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8" />
<property name="fallbackToSystemLocale" value="false"></property>
</bean>
属性存储在src / main / resources中。
希望它有所帮助。
答案 1 :(得分:0)
使用FMT标记库我们无法解决问题。我相信它与我们在JBoss 7.1.1服务器上使用的jstl jar和taglib有一些关系。
我们开始使用spring tlds来显示消息。现在一切都很好。谢谢您的帮助。
答案 2 :(得分:0)
使用/ WEB-INF / messages / msgs代替WEB-INF / messages / msgs
只需在路径的开头添加“ /”。