首先把struts框架搭建成功,
然后在src下创建资源文件,资源文件命名可以是如下三种形式:
baseName_language_country.properties
baseName_language.properties
baseName.properties
baseName可自定义,语言编码和国家编码是固定的 ,可以在Locale类的常量中找到,不同语言的切换只需要提供不同国家的语言资源文件即可
这里我们配置了两个属性
messages_en_US.properties英文
messages_zh_CN.properties中文
编写jsp页面 代码如下:
<s:i18n name="messages_zh_CN">
<form action="<%=basePath%>login.action" 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"/>"/></td>
</tr>
</table>
</form>
</s:i18n>
这里有一个i18n,他就是Internationalization(国际化)的英文缩写,为什么是i18n呢?
Internationalization去掉头尾的i和n刚好还剩下18个字符
编写action,代码如下:中英切换
public class LoginAction extends ChangeLanguageAction{
public String execute() {
return success;
}
}
配置拦截器,代码如下:
public class RegisterAction extends ActionSupport {
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String t1(){
System.out.println(this.getText("login.username"));
return "success";
}
}
最后在struts.xml中配置拦截器和国际化的资源,
代码如下:
/index.jsp /show.jsp