Struts2的国际化
程序员文章站
2022-05-24 11:11:07
...
Struts2的国际化
第一步:在package标签外添加一个 constant 标签; 标签中的value属性由资源文件名的前缀确定。
<!-- 国际化资源文件(value是资源文件前缀名) -->
<constant name="struts.custom.i18n.resources" value="gyx"></constant>
第二步:在js页面用struts2的标签库显示
<s:i18n name="gyx">
<a href="i18n?lang=zh_CN">中文</a>
<a href="i18n?lang=en_US">English</a>
<a href="i18n?lang=ja_JP">ほうぶん</a>
<form action="i18n" method="post">
<s:text name="username"/>:<input type="text"/><br/>
<s:text name="pass"/>:<input type="text"/><br/>
<input type="submit" value="<s:text name="submit"/>" />
</form>
</s:i18n>
第三步:在com.test.action包中写一个 I18nAction
package com.gyx.action;
import java.util.Locale;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
public class I18nAction implements Action{
private String lang;
public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
Locale locale = (Locale) session.get("WW_TRANS_I18N_LOCALE");
if (lang==null || lang.equals("zh_CN")) {
System.out.println("中文");
locale = new Locale("zh","CN");
}else if(lang.equals("en_US")){
System.out.println("英文");
locale = new Locale("en", "US");
}else if(lang.equals("ja_JP")){
System.out.println("日文");
locale = new Locale("ja", "JP");
}
ActionContext.getContext().setLocale(locale);
session.put("WW_TRANS_I18N_LOCALE", locale);
return "i18n";
}
public String getLang() {
return lang;
}
public void setLang(String lang) {
this.lang = lang;
}
}
第四步:在struts.xml文件中配置 i18n 的 action
<!-- 国际化action -->
<action name="i18n" class="com.gyx.action.I18nAction">
<result name="i18n">/i18n.jsp</result>
</action>
上一篇: struts2的国际化 2