一、输出国际化信息
1.需要更改idea设置
File–>settings–>Editer–>File Encodings
在界面的右下角勾选Transparent native-to-ascii conversion,使中文转成unicode编码
2.在src下创建至少两个:基本名_ 语言 _国家.properties全局资源文件,基本名同会保存在一个目录下!
3.在struts.xml中进行配置(配置为全局资源文件)
<constant name="struts.custom.i18n.resources" value="tt"></constant>
若定义在包范围的资源文件,文件名为:package_ 语言 _国家.properties,package为固定写法,资源文件所在包及其子包下的action均可用;
若定义在某个action范围的资源文件,文件名为:ActionClassName_ 语言 _国家.properties(不是avtion name),该资源文件仅该action可用;
系统在查找key时,先查action范围,再查package范围,后找全局资源文件
4.在jsp中显示(使用全局资源文件)
<s:text name="welcome"></s:text>
5.action中获取
继承ActionSupport类
调用this.getText()方法,参数资源中的key值
public class International extends ActionSupport
public String execute() throws Exception {
String inter=this.getText("welcome");
ActionContext.getContext().put("msg",inter);
return SUCCESS;
二、输出带有占位符的国际化信息
1.资源文件中{数字}代表占位符,数字从零开始,{0}代表第一个占位符
2.jsp页面输出(使用全局资源文件)
<s:text name="welcome">
<s:param>快乐</s:param>
<s:param>你</s:param>
</s:text>
输出:快乐欢迎你
3.action中获取
以下两种方法获取
public String execute() throws Exception {
String inter=this.getText("welcome",new String[]{"天天","你"});
ActionContext.getContext().put("msg",inter);
return SUCCESS;
}
输出:天天欢迎你
三、jsp中直接访问资源文件(不配置)
默认访问全局资源文件,放在下访问指定路径的资源文件;
全局资源文件,name为基本名称
<s:i18n name="tt">
<s:text name="welcome">
<s:param>快乐</s:param>
<s:param>你</s:param>
</s:text>
</s:i18n>
包范围资源文件,name为包路径加package
<s:i18n name="cn/hello/package">
action范围文件,name为action路径
<s:i18n name="cn/hello/InternationalAction">