第一步需要建立配置文件 格式为 文件名_zh_CN.properties 为中文配置文件 文件名_en_US.properties为美式英语配置文件
配置文件里面的值以键值对的形式保存 例如 name=张三 name=ZhangSan
然后在Struts中把配置和文件设置为全局的
<constant name="struts.custom.i18n.resources" value="文件名" /> <!--这里的文件名就是上面的文件名-->
然后在页面引用
<%@taglib uri="/struts-tags" prefix="s"%>
<s:text name="name"></s:text> <!--这样就可以在页面显示 如果浏览器的语言是中文的就显示 张三 是英文的就显示 ZhangSan-->
也可以在action中显示但是Action必须继承ActionSupport 在action中以 this.getText("name");来获得
例如
package com.day07;
import com.opensymphony.xwork2.ActionSupport;
public class demo extends ActionSupport{
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String execute(){
this.message = this.getText("name");
return "success";
}
}
在页面中就可以 以 ${message}来显示 同上
输出带有占位符的国际化信息 在properties文件中有占位符
例如 name = ZhangSan,{0} name=张三,{0}
在jsp中注入值
<s:text name="name">
<s:param>在吃饭</s:param><!--为占位符注入信息-->
</s:text>
在action中通过 this.getText("name",new String[]{"在吃饭"});
这样就为占位符注入信息了
配置包范围的国际化信息
直接在包下新建配置文件 package_zh_CN.properties package_en_US.properties
系统会优先查找包范围的配置文件再查看全局范围的配置文件
配置action范围的国际化信息
在包下面建立 文件名为 action类名_zh_CN.properties action类名_en_US.properties
这样就配置了action范围的国际化信息