Struts国际化

第一步需要建立配置文件 格式为      文件名_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范围的国际化信息

上一篇:struts实现国际化


下一篇:打印lua中全局变量的一段代码