struts2中的国际化

实现struts2中国际化其实非常简单

首先,struts2中的国际化是通过资源文件来配置的。

资源文件分为:action类级,package类级,还有webapp类级的

1.action类级的:

新建一个.properites的资源文件。命名必须规范:action名_编码_地区,action名必须与你当前的action的名字相同,编码和地区可以通过IE的语言栏查看。然后就是编写你的资源文件:写的时候可以通过eclipse的可视化操作直接写数据。他可以帮你自动转换编码:

login_submit=\u63D0\u4EA4 login_reset=\u91CD\u7F6E login_sex=\u6027\u522B login_page=\u767B\u5F55\u9875\u9762 login_password=\u5BC6\u7801 login_username=\u7528\u6237\u540D login_sex_male=\u7537 login_sex_female=\u5973 login_hf=\u5A5A\u5426 2.package类级的:

该资源文件必须在你要映射的包下。其中命名必须以package开头,package_编码_地区。其他地方都一样。

3.整个应用类级的:

该资源文件必须放在你的src目录下。命名可随意起,名称_编码_地区。需要注意点是:这个还需配置一个常量:可在struts,xml文件中配置

<constant name="struts.custom.i18n.resources" value="i18n"></constant>或是在default.properites文件中配置。

4.获取值:替换当前的中文:

可以通过key,或%{getText('name')}获取,例;

<s:form method="post" action="login" > <s:textfield name="username" value="" key="login_username" required="true" requiredposition="left" /> <s:password name="password" value="" label="%{getText('login_password')}" required="true" /> <s:radio list="#{1:getText('login_sex_male'),0:getText('login_sex_female')}" name="sex" value="1" key="login_sex" /> <s:checkbox key="login_hf" value="" name="hf"/> <s:submit key="login_submit" /><s:reset key="login_reset"/> </s:form>

5.这三个的资源文件的优先级:

先找action类级的,再找到包类级的。最后才是webapp类级的。如果有冲突。就近原则。

6.语言切换:

先在jsp中添加两个链接。

<a href="changeLang.action?lang=1">中文</a> <a href="changeLang.action?lang=2">english</a>然后再写一个action类。重写execute方法:

public class ChangeLang extends ActionSupport { private String lang; Locale l=null; @Override public String execute() throws Exception { if(lang.equals("1")){ //中文版 l=Locale.CHINA; }else{ //英文版 l=Locale.US; } ActionContext.getContext().setLocale(l);//添加到locale对象中 ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE", l);//设置locale的属性 return LOGIN; }}最后在struts.xml文件中注册下这个action类就行了
<action name="changeLang" class="com.accp.testAction.ChangeLang"> <result name="login">/Login.jsp</result> </action>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值