struts2的国际化

    Struts2的国际化步骤与Java的国际化步骤基本相似,只是实现更加简单。Struts2的国际化可按如下步骤进行。

    1. 让系统加载国际化资源文件。有两种方式:

    (1)自动加载:Action范围的国际化资源文件、包范围的国际化资源文件由系统自动加载。

    (2)手动加载:JSP范围的国际化资源文件、全局范围的国际化资源文件,分别使用标签、配置常量的方式来手动加载。

    2. 输出国际化。也有两种方式:

    (1)在视图页面上输出国际化消息,需要使用Struts2的标签库。

    (2)在Action类中输出国际化消息,需要使用ActionSupport的getText()方法来完成。


实例:

global.username=用户名:

global.reset=重置

    1. getText("global.username "),使用%{}与struts2标签结合使用:

<s:reset value="%{getText('global.reset')}" title="%{getText('global.reset')}" οnclick="" />   

    2. 使用text标签输出国际化消息,该标签可以指定一个name属性,将key指定给name。

<s:text name="global.username " />

    3. 通过在表单元素中指定key属性,在其label中来输出国际化消息。

<s:textfield name="username" key="global.username"/>

补充:text标签

    text标签用于输出指定的国际化消息。该标签既可以直接输出国际化消息,也可以将国际化消息放入ValueStack中。使用该标签时可以指定如下几个属性:

    (1)name:必填属性,指定国际化消息的key。

    (2)searchValueStack:该属性指定国际化消息的key不存在时,是否在ValueStack中进行搜索。

    (3)var:可选属性。指定了该属性后,text标签将不会输出国际化消息,而是将国际化消息以该属性指定的名称放入ValueStack中

实例:

<s:text name="struts.date.format" /> <br/>
<s:text name="struts.date.format" var="format" /> <br/>
读取ValueStack中的值:<s:property value="format" /> <br/>

输出:

yyyy年MM月dd日

读取ValueStack中的值,yyyy年MM月dd日



最后一点:

    资源文件,即*.properties文件中,包含key和value信息,当key中出现空格和等号的时候要用\(斜杠)进行转义。

    如:

global.user\ name=用户名:


2/6/2015补充:

    国际化信息的value中出现单引号,如果是通过<s:text />获取(出现在label里面),需要进行转义,而且实验得出,直接用\'还不行,需要用&apos;(&apos;为单引号的实体);

    如果是出现在message里面可以直接使用单引号,如struts验证的时候,

<field name="userName">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>${getText2("errors.required",{"company.label.userName"})}</message>
        </field-validator>  
    </field>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值