大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 帶你了解Struts2國際化

帶你了解Struts2國際化

更新時間:2022-05-27 10:34:25 來源:動力節(jié)點 瀏覽1307次

”國際化“是指一個應用程序在運行時能夠根據客戶端請求所來自國家或者地區(qū)語言的不同而顯示不同的用戶界面。

引入國家化機制的目的在于提供自適應的、更友好的用戶界面,而不必改變程序的其他功能或者業(yè)務邏輯。

而Struts2實現國際化的流程具體流程如下所示:

1.不同地區(qū)使用的操作系統(tǒng)環(huán)境不同,如中文操作系統(tǒng),英文操作系統(tǒng)等。獲得客戶端地區(qū)的語言環(huán)境后在,struts.xml文件中會找到相應的國際化資源文件,如果操作系統(tǒng)環(huán)境是中文環(huán)境,就加載中文國際化資源文件。所以國際化需要編寫支持多個語言的國際化資源文件,并且在struts.xml文件中配置。

2.根據選擇的語言加載相應的國際化資源文件,試圖通過struts標簽讀取國家化資源文件并把數據輸出到頁面上,完成頁面的顯示。

下面介紹在國際化流程中用到的文件

國際化資源文件或者資源文件

國際化資源文件又稱為資源文件,是以properties為擴展名的文件,該文件以”鍵==值“對的形式存儲資源數據。

例如:

key=value

loginName=用戶名稱

loginPassword=用戶密碼

例子(中英文登錄系統(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對應 -->
				<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請求-->
		<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攔截器,并通過constant元素配置常量,指定國際資源文件名字,
			value的值就是常量值,即國際化資源文件的名字 -->
	<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

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国内精品伊人久久久影院 | 国产成人综合欧美精品久久 | 免费观看一级特黄欧美大片 | 欧美一区二区久久精品 | 最新国产一区二区精品久久 | 国产欧美综合精品一区二区 | 四虎影视最新网站在线播放 | 成人免费观看网站 | 韩国三日本三级中文字幕 | 精品国产96亚洲一区二区三区 | 中国精品白嫩bbwbbw | 俄罗斯毛片免费大全 | 久久精品一区二区三区资源网 | 久久天天躁狠狠躁夜夜爽 | 欧美亚洲国产精品久久高清 | 老子影院午夜伦手机不四虎 | 久久久久久亚洲精品不卡 | 免费黄色一级大片 | 99婷婷久久精品国产一区二区 | 国产成人精品一区 | 国产欧美另类第一页 | 国产尤物福利视频在线观看 | 色六月丁香| 成人国产片免费 | 青青久久99久久99久久999 | 亚洲国产成人精彩精品 | 亚洲国产成人久久精品图片 | 国产在线视频凹凸分类 | 国产高清精品一级毛片 | 欧美一区二区在线播放 | 日韩女人毛片在线播放 | 久久99精品综合国产首页 | 午夜色影院 | 午夜免费| 国产第一色 | 免费a级毛片出奶水 | 伊人久久在线视频 | 亚洲精品毛片久久久久久久 | 在线免费黄色网址 | 欧美一级爱操视频 | 国产69精品久久久久99尤物 |