1:国际化的背景和意义
Struts2中的国际化就是 i18n —— Internationalization
使软件具备切换界面语言的功能
极大地简化国际化功能的实现
2:国际化的实现
实现步骤:
第一步:struts.xml中加入
<constant name="struts.custom.i18n.resources" value="message"/>
第二步:在与struts.xml文件同目录下创建以下两个文件。
message_en_US.properties (配置英文信息)
message_zh_CN.properties (配置中文信息)
第三步:在jsp中使用struts的标签完成界面所有内容
事例:
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.custom.i18n.resources" value="message" />
<package name="default" extends="struts-default">
<action name="languageSwitch" class="com.szmsd.action.languageChange">
<result name="success">/login.jsp</result>
</action>
</package>
</struts>
message_en_US.properties
login.title=User Login
login.username=username
login.password=password
login.submit=submit
message_zh_CN.properties
login.title=\u7528\u6237\u767B\u5F55
login.username=\u7528\u6237\u540D
login.password=\u5BC6\u7801
login.submit=\u63D0\u4EA4
login.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><s:text name="login.title" /></title>
</head>
<body>
<div style="height: 100%; width: 50%;">
<div align="center">
<a href="languageSwitch.action?request_locale=zh_CN">中文</a>
<a href="languageSwitch.action?request_locale=en_US">英文</a><br />
<h1><s:text name="login.title"></s:text></h1>
<form method="post">
<s:textfield key="login.username" />
<s:textfield key="login.password" />
<s:submit value="%{getText('login.submit')}"></s:submit>
</form>
</div>
</div>
</body>
</html>
languageChange(只用来做语言切换,在请求这个action时候加参数request_locale,值为zh_CN为中文,en_US为英文,也就是对应的属性文件)
package com.szmsd.action;
import com.opensymphony.xwork2.ActionSupport;
public class languageChange extends ActionSupport{
private static final long serialVersionUID = 1L;
public String execute() throws Exception {
return SUCCESS;
}
}
结果: