1. 程式人生 > >struts2的國際化(即實現中英文切換)例項

struts2的國際化(即實現中英文切換)例項

今天學習了國際化例項,也就是實現中文和英文的切換。
注:本部落格有部分程式碼參考阿木俠的部落格內容。

1、首先實現國際化對我們的專案要求是搭建好Struts2框架

2、我們要編寫jsp頁面在這個jsp頁面上測試結果

下面附上建立的login.jsp的程式碼:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title></title>
  </head>
  <body>
  <s:i18n name="globalMessages">
  	<s:text name="check"></s:text>:
  	<a href="login.action?request_locale=zh_CN"><s:text name="chinese"></s:text></a>  
	<a href="login.action?request_locale=en_US"><s:text name="english"></s:text></a>  
	<br/>
	<h3><s:text name="title"></s:text></h3>
	<s:form action="login" method="post">
			<table>
				<tr>
					<td><s:text name="username" /></td>	
					<td><s:textfield name="name" /></td>
				</tr>
				<tr>
					<td><s:text name="password" /></td>					
					<td><s:password name="password" /></td>					
				</tr>
				<tr>
					<td> </td>
					<td><s:submit value="%{getText('login')}" /></td>
				</tr>
			</table>
		</s:form>
	</s:i18n>
  </body>
</html>

這裡有一個i18n,他就是Internationalization(國際化)的英文縮寫,為什麼是i18n呢?
因為Internationalization去掉頭尾的i和n剛好還剩下18個字元。

3、然後我們編寫一個Action

這裡我建立的action名字為LoginAction,這裡程式碼如下,我沒有加別的驗證資訊,為了讓他直接能實現中英文切換。程式碼如下:

package com.hnpi.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
	public String execute(){
		return "success";
	}
}

4、下面我們就需要建立資原始檔了

資原始檔的內容基本是key-value對,其中key是程式使用的部分,而value是程式的顯示部分。
這裡我建立的資原始檔名稱為:globalMessages_zh_CN.properties(中文):
在這裡插入圖片描述
globalMessages_en_US.properties(英文):
在這裡插入圖片描述
這裡注意檔案的格式為.properties。不要建錯了。

5、最後我們就要對Struts.xml進行配置了

這個是實現中英文切換的一個核心,這裡面錯了就會導致切換不了。程式碼如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
 
<struts>
	<constant name="struts.costom.i18n.resources" value="globalMessages"/>
	<package name="default" extends="struts-default" namespace="/">	
		<action name="login" class="com.hnpi.action.LoginAction">
			<result name="success">/login.jsp</result>			
		</action>
	</package>
</struts>

然後我們就可以部署Tomcat進行運行了:
在這裡插入圖片描述
在這裡插入圖片描述
以上就是我的國際化例子的詳細介紹。有錯誤的地方還請各位多多指正。