• struts2中的国际化


    [java] view plaincopy
    1. 实现struts2中国际化其实非常简单  

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

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

    1.action类级的:

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

    [java] view plaincopy
    1. login_submit=u63D0u4EA4  
    2. login_reset=u91CDu7F6E  
    3. login_sex=u6027u522B  
    4. login_page=u767Bu5F55u9875u9762  
    5. login_password=u5BC6u7801  
    6. login_username=u7528u6237u540D  
    7. login_sex_male=u7537  
    8. login_sex_female=u5973  
    9. login_hf=u5A5Au5426  
    2.package类级的:

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

    3.整个应用类级的:

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

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

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

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

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

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

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

    6.语言切换:

    先在jsp中添加两个链接。

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

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





  • 相关阅读:
    Spring Cloud微服务实战 打造企业级优惠券系统 7-2 优惠券模块实体类相关列值枚举定义
    Spring Cloud微服务实战 打造企业级优惠券系统 7-1 创建优惠券模块微服务
    阿里云 oss (一) 工具上传图片
    Gateway 过滤器,过滤器统一异常处理
    GatewayFilterFactory 不生
    docker 安装 redis
    json 时区问题
    小程序checkbox
    小程序拍照功能
    Learning sensorimotor control with neuromorphic sensors: Toward hyperdimensional active perception
  • 原文地址:https://www.cnblogs.com/Code-Engineering/p/5745406.html
Copyright © 2020-2023  润新知