SpringMVC可以使用如下两个标签
Spring TLD: <spring:message code="{message.key}"/>
JSTL TLD: <fmt:message key="{message.key"}/>
但是我们会遇到以后的问题:
JSTL的标签没有解析成功
解决办法有二:
其一:
<fmt:setBundle basename="{classpath of .propertity file}" var="lang"/>
<fmt:message key="{message.key"} bundle="lang"/>其二:为什么Spring:message可以因为我们定义了:<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:org/i18n/message</value>
<value>classpath:org/i18n/pagelabel</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8"/>
<property name="cacheSeconds" value="0" />
<property name="useCodeAsDefaultMessage" value="true" />
</bean>
所以我们有理由用同样的方式去为fmt定义
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>org.i18n.message</param-value>
<param-value>org.i18n.pagelabel</param-value>
</context-param>
应该问题不大了
参考:http://stackoverflow.com/questions/12470928/jstl-resource-bundle-for-internationalization-and-localization