1. 程式人生 > >springmvc 資源國際化

springmvc 資源國際化

<!--  
        關於國際化:
        1. 在頁面上能夠根據瀏覽器語言設定的情況對文字(不是內容), 時間, 數值進行本地化處理
        2. 可以在 bean 中獲取國際化資原始檔 Locale 對應的訊息
        3. 可以通過超連結切換 Locale, 而不再依賴於瀏覽器的語言設定情況
        
        解決:
        1. 使用 JSTL 的 fmt 標籤
        2. 在 bean 中注入 ResourceBundleMessageSource 的示例, 使用其對應的 getMessage 方法即可
        
3. 配置 LocalResolver 和 LocaleChangeInterceptor --> <!-- 配置國際化資原始檔 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n"></property> </bean> i18n.properties i18n_zh_CN.properties i18n_en_US.properties 使用fmt標籤在jsp頁面顯示i18n資訊
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <fmt:message key="i18n.user"></fmt:message> <br><br> <a href="i18n2">I18N2 PAGE</a> </body> </html> 使用超連結國際化需要配置localeResolver
<br><br> <a href="i18n?locale=zh_CH">中文</a> <br><br> <a href="i18n?locale=en_US">英文</a> <!-- 配置 SessionLocalResolver --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean> <mvc:interceptors> <!-- 配置 LocaleChanceInterceptor --> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean> </mvc:interceptors> @Autowired private ResourceBundleMessageSource messageSource; @RequestMapping("/i18n") public String testI18n(Locale locale){ String val = messageSource.getMessage("i18n.user", null, locale); System.out.println(val); return "i18n"; } 直接跳轉不通過controller <mvc:view-controller path="/i18n" view-name="i18n"/> <mvc:view-controller path="/i18n2" view-name="i18n2"/>