Tip:关于i18n 其实就是取英文单词 国际化internationalization 的首末字符i和n 18则是中间的字符数
1:首先在src下创建两个 messages_zh_CN.properties和messages_en_US.properties文件
2:WebRoot下创建视图层的jsp界面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<s:i18n name="messages">
<s:text name="check"></s:text>:
<a href="index?request_locale=zh_CN"><s:text name="chinese"></s:text></a>
<a href="index?request_locale=en_US"><s:text name="english"></s:text></a>
<br/>
<form action="<%=basePath%>index" method="post">
<table>
<tr>
<td><s:text name="login.username"/></td>
<td><input type="text" name="user.userName"/></td>
</tr>
<tr>
<td><s:text name="login.password"/></td>
<td><input type="text" name="user.password"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="<s:text name="login.btn"/>"/></td>
</tr>
</table>
</form>
</s:i18n>
</body>
</html>
3:src下创建class类 内容还同前两个例子一致
package com.hngy.struts2class02;
public class first {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String execute(){
return "success";
}
}
4:web.xml配置文件(拦截器的配置)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
5:最后还是src下新建struts.xml文件(package下属性:name为默认 extends继承struts-default类 action下属性:name值必须与jsp文件form内的action值一致 class值为包名+class类名 method是java类内创建的方法名 本实例中为execute result下属性:name值则为方法的返回值 本实例中为success)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="dafault" extends="struts-default">
<action name="index" class="com.hngy.struts2class02.first" method="execute">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
这样一个struts2的国际化例子就完成了 接着在浏览器上展示效果吧