国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Struts2(十三)國際化-internationalization

2019-11-14 23:34:54
字體:
來源:轉載
供稿:網友
Struts2(十三)國際化-internationalization一、國際化是什么--I18N

即internationalization

首字母i-結束字母n之間有18個字母

特征:在程序不做修改的情況下,可以根據不同的語言環境顯示相應內容

二、java內置國際化

message_en_US.PRoperties

demo = hello world!userName = user namepassWord = passwordwelcome = welcome!

message_zh_CN.properties

demo = /u60A8/u597D/u4E16/u754C!userName = /u7528/u6237/u540Dpassword = /u5BC6/u7801welcome = /u6B22/u8FCE!

message.properties

demo = /u60A8/u597D/u4E16/u754C!userName = /u7528/u6237/u540Dpassword = /u5BC6/u7801welcome = /u6B22/u8FCE!

實現代碼

<%@page import="java.util.ResourceBundle"%><%@page import="java.util.Locale"%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!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>測試</title></head><body><h1>測試頁面</h1><%//獲取當前已經安裝的語言數組Locale [] locals=Locale.getAvailableLocales();//遍歷數組for(Locale local:locals){    //國家+國家代碼    out.print("國家:    "+local.getDisplayCountry()+"     國家代碼:"+local.getCountry()+"   ");    //語言+語言代碼    out.println("語言:  "+local.getDisplayLanguage()+"   語言代碼:"+local.getLanguage()+"<hr/>");}//引用語言            此處可以更改Locale ls=Locale.getDefault();//使用哪個資源文件ResourceBundle rb=ResourceBundle.getBundle("message",ls);//輸出out.println(rb.getString("demo"));out.println(rb.getString("userName"));out.println(rb.getString("password"));out.println(rb.getString("welcome"));%></body></html>
三、Struts2實現

準備全局資源文件:通常至少三個文件

命名規則:前綴名_語言_國家.properties

內容格式:key=value

指定資源文件(設置常量)

1.struts.xml文件中:

    <constant name="struts.custom.i18n.resources" value="message" />

2.struts.properties中:

struts.custom.i18n.resources=message

<s:text name="demo"></s:text><s:text name="userName" /><s:text name="password" /><s:text name="welcome" />

更改資源文件

message.properites

demo = 您好世界!userName = 用戶名password = 密碼welcome = 歡迎!submit =提交reset=重置

message_zh_CN.properties

demo = 您好世界!userName = 用戶名password = 密碼welcome = 歡迎!submit =提交reset=重置

message_en_US.properties

demo = hello world!userName = user namepassword = passwordwelcome = welcome!submit =submitreset=reset
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %><!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>測試</title></head><body><s:text name="demo"></s:text><s:text name="userName" /><s:text name="password" /><s:text name="welcome" /><s:form action="" method="post"><s:textfield key="userName" /><s:password  key="password"/><s:submit key="submit"/><s:reset key="reset" /></s:form></body></html>

四、Action類實現國際化

message.properties

demo = 您好世界!userName = 用戶名password = 密碼welcome = {0}歡迎!{1}submit =提交reset=重置fail=登錄失敗usermsg=用戶名不能為空usermsglength=用戶名的長度為2-16位pwdmsg=密碼不能為空pwdmsglength=密碼的長度為2-16位

message_zh_CN.properties同上

message_en_US.properties

demo = hello world!userName = user namepassword = passwordwelcome = {0}welcome!{1}submit =submitreset=resetfail=login failedusermsg=user name do not emptyusermsglength=user name length is 2 to 16!pwdmsg=password do not emptypwdmsglength=password length is 2 to 16!

struts.xml

<struts>    <constant name="struts.enable.DynamicMethodInvocation" value="false" />    <constant name="struts.devMode" value="true" />    <constant name="struts.custom.i18n.resources" value="message" />    <package name="default" namespace="/" extends="struts-default">    <action name="login" class="action.LoginAction" method="login">    <result name="success">    /demo.jsp    </result>    <result name="input">    /demo.jsp    </result>    </action> </package></struts>

demo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %><!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>測試</title></head><body><%-- <s:text name="demo"></s:text><s:text name="userName" /><s:text name="password" /><s:text name="welcome" /> --%><s:form action="login.action" method="post"><s:textfield name="username" key="userName" /><s:password  name="password" key="password"/><s:submit key="submit"/><s:reset key="reset" /></s:form><hr/><br/><s:actionmessage /><s:debug/></body></html>

LogionAction

package action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {    private String username;    private String password;    public String login() {        if ("admin".equalsIgnoreCase(username)                && "admin".equalsIgnoreCase(password)) {            this.addActionMessage(this.getText("welcome", new String[] {                    username,password}));            return SUCCESS;        }        this.addActionMessage(this.getText("fail"));        return INPUT;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

LogionAction.login()驗證文件

LogionAction-login-validation.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"><validators><field name="username"><field-validator type="requiredstring"><param name="trim">true</param><message>${getText("usermsg")}</message></field-validator><field-validator type="stringlength"><param name="trim">true</param><param name="minLength">2</param><param name="maxLength">16</param><message>${getText("usermsglength")}</message></field-validator></field><field name="password"><field-validator type="requiredstring"><param name="trim">true</param><message>${getText("pwdmsg")}</message></field-validator><field-validator type="stringlength"><param name="trim">true</param><param name="minLength">2</param><param name="maxLength">16</param><message>${getText("pwdmsglength")}</message></field-validator></field></validators>

五、Jsp頁面國際化傳參數
<!-- First Example --><s:i18n name="struts.action.test.i18n.Shop">    <s:text name="main.title"/></s:i18n><!-- Second Example --><s:text name="main.title" /><!-- Third Examlpe --><s:text name="i18n.label.greetings">   <s:param >Mr Smith</s:param></s:text>

<s:text name="welcome"><s:param>admin</s:param><s:param>ffff</s:param></s:text>

六、資源查找順序

七、在JSP中使用國際化
使用UI表單標志時,getText可以用來設置label屬性,例如: <s:textfield name="name" label="%{getText('UserName')}"/>
八、資源文件里使用OGNL表達式

許多情況下,我們都需要在動行時(runtime)為國際化字符插入一些參數,例如在輸入驗證提示信息的時候。在Struts 2.0中,我們可以通過在資源文件的國際化字符串中使用OGNL做到這點: 格式為${表達式},例如:

validation.require=${fileName} is required
九、資源文件查找順序


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江阴市| 固阳县| 邵武市| 县级市| 东乡族自治县| 桂林市| 都江堰市| 阳信县| 皋兰县| 明星| 城步| 眉山市| 武宣县| 中宁县| 扶绥县| 冀州市| 象山县| 萍乡市| 锡林浩特市| 霞浦县| 南涧| 芜湖县| 绵竹市| 辽阳县| 稻城县| 柏乡县| 新巴尔虎右旗| 四川省| 茶陵县| 庆元县| 绥棱县| 元朗区| 兴仁县| 抚顺市| 嘉峪关市| 苍山县| 滨州市| 乌拉特后旗| 炎陵县| 诏安县| 乐清市|