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