如何實現 Spring MVC i18n 國際化,動態設定預設語言
1.在spring配置檔案中配置資原始檔properties的位置及公共名,下列配置指定的properties檔案處於src目錄下的
resources資料夾中,名字為message_info_*.properties。
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<propertyname="basenames">
<list>
<value>resources/message_info
</list>
</property>
<propertyname="useCodeAsDefaultMessage"value="true"/>
<!-- Set whether to usethe message code as default message instead of throwing aNoSuchMessageException. Useful for development anddebugging. -->
</bean>
2.在spring配置檔案中配置基於session的處理,將提交上來的locale引數進行處理,下列程式碼預設載入的語言是中文簡體。
<bean id="localeResolver"class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<propertyname="defaultLocale"value="zh_CN"></property>
</bean>
3.在spring配置檔案中的controller內配置相應的攔截器。
<beanid="className"
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<propertyname="interceptors">
<list>
<beanclass="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
</list>
</property>
</bean>
4.相應的properties檔案內寫入對應的語言,配置檔案的語言資訊以keyvalue的形式進行儲存。
5.利用jstl的fmt標籤庫進行相應資料的國際化。
2)需要國際化處寫入<fmt:messagekey="title"></fmt:message>標籤,此處將顯示相應properties檔案中名為title的資訊。
3)頁面上寫成三個連線用於控制國際化的轉換
<ahref="/CloudPortal/staff/goindex.do?locale=zh_CN">Chinese</a>//message_info_zh_CN.properties
<ahref="/CloudPortal/staff/goindex.do?locale=en_US">English</a>//message_info_en_US.properties
<ahref="/CloudPortal/staff/goindex.do?locale=zh_TW">Chinese(TW)</a>//message_info_zh_TW.properties
locale內部固定的引數用於判斷讀取請求的配置檔案。