Strust2 消息处理与国际化之配置国际化全局资源文件

1.首先struts2项目搭建完毕后,我们在src文件夹下。即struts2.xml同级文件夹下创建资源文件。资源文件的名称格式为:

XXX_语言_国家.properties

XXX:资源文件名。

语言、国家:必须是java所支持的语言和国家。比如:

中国大陆:语言   zh   国家  CN

美国:语言  en   国家 US

所以我们能够这么取名:

比如:i18n_zh_CN.properties

i18n_en_US.properties

2.创建上述的两个资源文件,然后在当中输入内容:key   和   value

比如:i18n_zh_CN.properties中输入:username=用户名,当输入中文时会自己主动转换为ascii码:

username=^\u7528\u6237\u540D

i18n_en_US.properties中输入:username=UserName

3.然后我们在struts2.xml中配置全局资源文件

<constant name="struts.custom.i18n.resources" value="XXX"></constant>

这里value取值为i18n(可以取任意值)
目录结构

 

代码:i18n.jsp

 

<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form action="" >

 <!--若 label 标签使用 %{getText('username')} 的方式就也可以从国际化资源文件中获取 value 值了

    因为此时在对象栈中有 DefaultTextProvider 的一个实例, 该对象中提供了访问国际化资源文件的 getText() 方法

    同时还需要通知 struts2 框架 label 中放入的不再是一个普通的字符串, 而是一个 OGNL 表达式. 所以使用 %{} 把 getText()包装起来, 以强制进行 OGNL 解析.

     -->

     <!--  theme="simple"若加上theme="simple"主题

页面上可以直接使用 <s:text name="" /> 标签来访问国际化资源文件里的 value 值.

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

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

<s:text name="password"/>:

-->

  <s:textfield name="username" label="%{getText('username')}"></s:textfield>

     <!-- key 的方式是直接上资源文件中获取 value 值 -->

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

 <s:password name="password" key="password"></s:password>

    

   <s:submit key="submit" value="%{getText('submit')}"></s:submit>

    

    </s:form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值