Struts初級教程(4)-對國際化的支持_JSP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Struts初級教程(3)-結(jié)合數(shù)據(jù)庫應用這一節(jié)我們開始用 Struts 結(jié)合數(shù)據(jù)庫設計程序,主要將上一節(jié)的程序略做修改,如下所示: 效果圖: 顯示結(jié)果如下圖: 如果您輸入的是不合法的話,則如下圖: 程序修改步驟: A、數(shù)據(jù)源配置 在struts-config.xml文件中有一data-sources元素是用來配置應用所需要
隨著全球經(jīng)濟的在體化趨勢,網(wǎng)頁設計開發(fā)者應該開發(fā)出支持多國語言、國家化的web應用程序。就是一個web應用程序在運行時能夠根據(jù)客戶端請求所來自的國家和語言的不同顯示不同的用戶界面。這樣當需要在應用程序中添加對一種新的語言的支持時,不需要對已有的軟件返工,無需修改應用程序的程序代碼。I18N作為“國際化”的簡稱,其來源是明文單詞“internationlization”的首末字符“i”和“n”之間的字符數(shù)為18。Struts對國家化的支持
在Struts框架中進行應用程序的國際化,支持重點在于應用程序的文本和圖像表示。最重要的工作就是準備Resurce Bundle 資源包。事實上,準備資源包的過程,就是把對應不同語言的用戶所涉及的文本和圖片保存在多個文本文件中,客戶端根據(jù)不同的環(huán)境需要進行更換。這些文件被稱為“屬性文件”,所有屬性文件合在一起被稱為資源包(Resource Bundle)。
Struts建立于Java平臺之上,很容易建立國際化和本地化的應用程序。在這里你要熟悉的關(guān)鍵概念是:
1) Locale – 基礎的支持國際化的java類是java.util.Locale。每個Locale代表一個特別的國家和語言的選擇(加上一個可選的語言變量),以及一套格式假定,例如數(shù)字和日期等等。
2) ResourceBundle – java.util.ResourceBundle類提供支持多種語言消息的基本工具。查看文檔中關(guān)于ResourceBundle類以及你的JDK版本的文檔包中關(guān)于國際化的更多內(nèi)容。
3) PropertyResourceBundle – 一個ResourceBundle類的標準實現(xiàn)允許你使用與初始化properties文件同樣的鍵/值的語法來定義資源。這對于使用為用于一個web應用程序的消息準備資源包是非常方便的,因為這寫消息通常都是面向文本的。
4) MessageFormat – java.text.MessageFormat類允許你使用運行時的指定的參數(shù)替換一個消息字符串中的一部分(在這種情況下,是一個從一個資源包得到的消息)。這在你創(chuàng)建一個句子的場合中是有用的,但是詞會以不同的語言安照不同的順序出現(xiàn)。消息中的占位符,字符串{0}用第一個運行時參數(shù)替換,{1}用第二個運行時參數(shù)替換,以此類推。
5) MessageResources – Struts的類org.apache.struts.util.MessageResources使你能夠?qū)⒁惶踪Y源包視做一個數(shù)據(jù)庫,并且允許你為一個特定的Locale(通常是與當前用戶相對應)請求一個特定的消息,而不是為服務器運行在其中的缺省的Locale請求消息。
示例
1、我們還在前面的登錄實例進行加工。
2、在默認的applicationResources.properties文件中添加相應的消息文本。
label.username=username
label.password=password
button.submit=submit
button.reset=reset
3、創(chuàng)建臨時中文資源文件:applicationResources_temp.propertyies
label.username=用戶名
label.password=密碼
button.submit=確定
button.reset=重置
4、對臨時資源文件進行編碼轉(zhuǎn)換:
在JDK中提供了native2ascii命令,它能夠?qū)崿F(xiàn)字符編碼轉(zhuǎn)換。在DOS下執(zhí)行以下命令,將生成按GBK以編碼的中文資源文件:
applicationResources_zh_CN.properties
native2ascii –encoding gbk applicationResources_temp.properties
applicationResources_zh_CN.properties
生成的applicationResources_zh_CN.properties的內(nèi)容如下:
label.username="u7528"u6237"u540d
label.password="u5bc6"u7801
button.submit="u786e"u5b9a
button.reset="u91cd"u7f6e
當web用戶的Locale為中文時,Struts框架將自動選擇來自applicationResources_zh_CN.properties文件的消息文本。
5、創(chuàng)建英文的資源文件:
label.username=username
label.password=password
button.submit=submit
button.reset=reset
完成以上幾個步驟后,在web 應用程序的根目錄"WEB-INF目錄"classes目錄下應該有了三個資源文件:
默認資源文件:applicationResource.properties
中文資源文件:applicationResource_zh_CN.properties
英文資源文件:applicationResource_en.properties
6、創(chuàng)建struts的Resource Bundle
Struts配置文件中的<message-resources>元素定義了一個Resource Bundle。Resource Bundle的持久化消息文本存儲在資源文件中,其擴展名為“.properties”,里面存放的都是“鍵/值”。
在struts-config.xml中對Resource Bundle的配置代碼:
<message-resources parameter=”ApplicationResources”/>
表示默認的資源文件應該是applicationResources.properties,存放在應用程序的根目錄"WEB-INF目錄"classes目錄下。如果應用程序需要支持中文用戶,要在相同目錄下創(chuàng)建一個包涵中文消息的資源文件,文件名必須為applicationResource_zh_CN.properties。
7、修改login.jsp頁面
<html:form action="login.do" method="post">
<bean:message key="label.username"/>
<html:text property="username" /><html:errors property="username"/>
<br />
<bean:message key="label.password"/>
<html:text property="userpass" /><html:errors property="userpass"/>
<br>
<input type="submit" name="Submit" value="<bean:message key="button.submit"/>">
<input type="reset" value="<bean:message key="button.reset"/>">
</html:form>
<bean:message/>:用于訪問web應用資源的bean標簽,顯示Resource Boundle中的內(nèi)容。 8、運行程序
1)如果你的瀏覽器默認設置為中文,你鍵入地址,將看到的頁面如下:

2)把你的瀏覽器的設置為英文,然后刷新頁面,如下圖:


提示:如果你的web應用程序面對多個國家的話,實現(xiàn)不同語言的切換,現(xiàn)在一切都方便了,不過java對中文的支持并不好,并不是什么地方都可以使用中文的。
分享:Struts初級教程(2)-避免出現(xiàn)亂碼Jsp開發(fā)中經(jīng)常出現(xiàn)中文 亂碼問題,所以必須提前 處理。前面例子中,只要用戶名和密碼都是123,才返回成功的頁面。為了處理中文,我們設定判斷只有用戶名是張三才登陸成功。 既然是中文亂碼處理,頁面的用戶輸入就是中文了,相應的action的if處理也要變成:if(u
相關(guān)JSP教程:
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復習整理
- JSP腳本元素和注釋復習總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關(guān)鏈接:
- 教程說明:
JSP教程-Struts初級教程(4)-對國際化的支持
。