Struts框架的國際化
本文將通過一個具體的例項來展示Struts框架的國際化,使用的版本是struts1.1。
案例:在一個頁面上有一個下拉框,下拉框中有3個國家的語言選項,分別是“簡體中文”、“繁體中文”、“英文”。使用者通過對這三個選項的改變,而實現3種語言的變化。效果如下:
一、具體開發思想如下:
1)通過一個Action來獲得JSP頁面下拉框的選擇項,根據這些選項來動態改變儲存在Session中的Locale物件;
2)JSP頁面的所有顯示都會通過<bean:message>標籤來讀取資源配置檔案,根據3種語言給出3個資源配置檔案,資源配置檔案的“鍵”不會改變,改變的是“值”,簡體和繁體的“值”會使用UTF-8編碼。
二、 部分程式碼如下:
a) 在Action中提供針對請求到來的Locale物件的動態變化,
package struts.sample.cap4.sample1.action;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.Globals;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import struts.sample.cap4.sample1.form.LanguageSelectForm;
public class I18SelectAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm actionForm,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LanguageSelectForm languageSelectForm = (LanguageSelectForm) actionForm;
Locale locale = null;
//根據頁面的下拉選擇得到Locale物件的內容
if (languageSelectForm.getLanguageSelect().equals("0")) {
locale = Locale.SIMPLIFIED_CHINESE;
}
if (languageSelectForm.getLanguageSelect().equals("1")) {
locale = Locale.US;
}
if (languageSelectForm.getLanguageSelect().equals("2")) {
locale = Locale.TRADITIONAL_CHINESE;
}
//將Locale物件的內容存放到Session中
request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
return mapping.findForward("success");
}
}
b) 提供一個ActionForm
該Action沒有檢驗的方法,僅僅是傳遞從頁面到來的引數。
package struts.sample.cap4.sample1.form;
import org.apache.struts.action.ActionForm;
public class LanguageSelectForm extends ActionForm {
//下拉框的value
String languageSelect;
public String getLanguageSelect() {
return languageSelect;
}
public void setLanguageSelect(String languageSelect) {
this.languageSelect = languageSelect;
}
}
c) JSP頁面
JSP頁面的部分只有一個下拉框和一些提示資訊。
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html>
<head>
<title>selectlanguage</title>
<script language="javascript">
function selectsubmit() {
if (document.all("languageSelect").value != "9999") {
document.langform.submit();
}
}
</script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="langform" action="I18SelectAction.do" method="POST">
<table border="0" width="486" cellpadding="6">
<tr>
<td><bean:message key="form.languagefamily" /></td>
<td>
<select name="languageSelect" onchange="selectsubmit();">
<option value="9999" selected="selected">
<bean:message key="form.language999" />
</optioon>
<option value="0">
<bean:message key="form.language0" />
</optioon>
<option value="1">
<bean:message key="form.language1" />
</optioon>
<option value="2">
<bean:message key="form.language2" />
</optioon>
</select>
</td>
</tr>
</table>
</form>
</body>
</html>
三、3個不同語言的資源配置檔案
三種不同語言的配置檔案分別為application_en_US.properties、application_zh_CN.properties、application_zh_TW.properties,對應了英文、簡體中文和繁體中文3種不同的顯示。
application_en_US.properties內容如下:
form.language0=SIMPLIFIED_CHINESE
form.language1=ENGLISH
form.language2=TRADITIONAL_CHINESE
form.language999=Please Choose your language
form.languagefamily=Language
application_zh_CN.properties的內容如下:
</pre><pre class="java" name="code">form.language0=\u7B80\u4F53\u4E2D\u6587
form.language1=\u82F1\u8BED
form.language2=\u7E41\u4F53\u4E2D\u6587
form.language999=\u8BF7\u9009\u62E9\u6240\u9700\u8BED\u8A00\u7684\u79CD\u7C7B
form.languagefamily=\u8BED\u8A00
application_zh_TW.properties的內容如下:
form.language0=\u7C21\u9AD4\u4E2D\u6587
form.language1=\u82F1\u8A9E
form.language2=\u7E41\u9AD4\u4E2D\u6587
form.language999=\u8ACB\u9078\u64C7\u6240\u9700\u8A9E\u8A00\u7684\u7A2E\u985E
form.languagefamily=\u8A9E\u8A00
完整程式碼地址:http://download.csdn.net/detail/sanqima/7479141
相關文章
- struts國際化程式嘗試
- Struts2教程10:國際化
- struts 國際化(yunchat-學習筆記)筆記
- 20160502-struts2入門--國際化
- Java Struts2 本地化/國際化(i18n)淺析Java
- Struts2【UI標籤、資料回顯、資源國際化】UI
- 如何在其他框架中使用 Hyperf 國際化元件框架元件
- 使用Whisper框架快速為專案新增國際化支援框架
- Java中的國際化Java
- 國際化思考
- ios國際化iOS
- Struts框架_9 Struts2的驗證框架
- Struts2的框架框架
- JAVA的國際化機制Java
- Java 國際化(一)Java
- Android國際化Android
- Jsf國際化JS
- struts2的國際化(即實現網站整體中英文切換)例項網站
- iOS 國際化 && 本地化iOS
- iOS國際化(本地化)iOS
- Java模組化的國際化實現- GunnarJava
- 實用的 Flutter 國際化指南Flutter
- Android 之 尺寸的國際化Android
- Java的國際化問題 (轉)Java
- Spring Webflux國際化SpringWebUX
- Webnovel 國際化實踐Web
- Grails國際化例項AI
- QT6 國際化QT
- jeecg 國際化處理
- Java國際化小小示例Java
- Yii2-國際化
- 【spring 國際化】springMVC、springboot國際化處理詳解SpringMVCSpring Boot
- winForm 國際化的簡單實現ORM
- Struts2框架的基本使用框架
- 菜鳥學SSH(三)——Struts2國際化自動檢測瀏覽器語言版瀏覽器
- iOS語言國際化(本地化)iOS
- Django國際化與本地化指南Django
- Spring-boot國際化Springboot