您好,登錄后才能下訂單哦!
這篇文章主要介紹了Struts2國(guó)際化如何實(shí)現(xiàn)的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Struts2國(guó)際化如何實(shí)現(xiàn)文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
”國(guó)際化“是指一個(gè)應(yīng)用程序在運(yùn)行時(shí)能夠根據(jù)客戶(hù)端請(qǐng)求所來(lái)自國(guó)家或者地區(qū)語(yǔ)言的不同而顯示不同的用戶(hù)界面。
引入國(guó)家化機(jī)制的目的在于提供自適應(yīng)的、更友好的用戶(hù)界面,而不必改變程序的其他功能或者業(yè)務(wù)邏輯。
而Struts2實(shí)現(xiàn)國(guó)際化的流程具體流程如下所示:
1.不同地區(qū)使用的操作系統(tǒng)環(huán)境不同,如中文操作系統(tǒng),英文操作系統(tǒng)等。獲得客戶(hù)端地區(qū)的語(yǔ)言環(huán)境后在,struts.xml文件中會(huì)找到相應(yīng)的國(guó)際化資源文件,如果操作系統(tǒng)環(huán)境是中文環(huán)境,就加載中文國(guó)際化資源文件。所以國(guó)際化需要編寫(xiě)支持多個(gè)語(yǔ)言的國(guó)際化資源文件,并且在struts.xml文件中配置。
2.根據(jù)選擇的語(yǔ)言加載相應(yīng)的國(guó)際化資源文件,試圖通過(guò)struts標(biāo)簽讀取國(guó)家化資源文件并把數(shù)據(jù)輸出到頁(yè)面上,完成頁(yè)面的顯示。
下面介紹在國(guó)際化流程中用到的文件
國(guó)際化資源文件又稱(chēng)為資源文件,是以properties為擴(kuò)展名的文件,該文件以”鍵==值“對(duì)的形式存儲(chǔ)資源數(shù)據(jù)。
例如:
key=value
loginName=用戶(hù)名稱(chēng)
loginPassword=用戶(hù)密碼
例子(中英文登錄系統(tǒng)):
文件框架:
login.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><html> <head> <title><s:text name="loginTitle"></s:text></title> </head> <body> <s:form action="checkLogin" method="post"> <!-- 表單元素的key值與資源文件的key對(duì)應(yīng) --> <s:textfield name="UserName" key="loginName" size="20" /> <s:password name="UserPassWord" key="loginPassword" size="20" /> <s:submit key="loginSubmit" /> </s:form> </body></html>
loginSuccess.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><html> <head> <title><s:text name="successPage"></s:text></title> </head> <body> <hr> <s:text name="loginName" />:<s:property value="userName" /><br> <s:text name="loginPassword" />:<s:property value="userPassWord" /><br> </body></html>
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaeee/web-app_3_1.xsd" id="WebApp_ID" version="3.1" > <filter> <!-- 配置Struts2核心控制器的名字 --> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <!-- Struts2控制器的名字 --> <filter-name>struts2</filter-name> <!-- 攔截所有的URL請(qǐng)求--> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>
struts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"><struts> <!-- 使用Struts2中的I18N攔截器,并通過(guò)constant元素配置常量,指定國(guó)際資源文件名字, value的值就是常量值,即國(guó)際化資源文件的名字 --> <constant name="struts.custom.i18n.resources" value="globalMessages"></constant> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <package name="I18N" extends="struts-default"> <action name="checkLogin" class="loginAction.LoginAction"> <result name="success">/I18N/loginSuccess.jsp</result> <result name="error">/I18N/login.jsp</result> </action> </package></struts>
LoginAction.java
package loginAction;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.sun.net.httpserver.Authenticator.Success;public class LoginAction extends ActionSupport{ private static final String SUCCESS = null; private static final String ERROR = null; private String userName; private String userPassWord; private String tip; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPassWord() { return userPassWord; } public void setUserPassWord(String userPassWord) { this.userPassWord = userPassWord; } public String getTip() { return tip; } public void setTip(String tip) { this.tip = tip; } public String execute() throws Exception{ ActionContext ac=ActionContext.getContext(); if(getUserName().equals("hjw")&&getUserPassWord().equals("123")) { ac.getSession().put("userName", getUserName()); this.tip=getText("login.success",new String[] {this.userName}); return SUCCESS; } else { return ERROR; } } }
globalMessages_en_US.properties
loginTitle=UserLogin loginName=Username loginPassword=UserPassword loginSubmit=login
globalMessages_zh_CN.properties
loginTitle=\u7528\u6237\u767b\u5f55 loginName=\u7528\u6237\u540d\u79f0 loginPassword=\u7528\u6237\u5bc6\u7801 loginSubmit=\u767b\u5f55
關(guān)于“Struts2國(guó)際化如何實(shí)現(xiàn)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Struts2國(guó)際化如何實(shí)現(xiàn)”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。