`
一日一博
  • 浏览: 226820 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2之国际化i18N配置

阅读更多

在struts2中需要做国际化的有:
jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化

<constant name="struts.locale" value="zh_CN"/>
<!-- 多个文件的话用逗号隔开 -->
<constant name="struts.custom.i18n.resources" value="message"/>

中英文切换功能,只需要在请求的url后面带上参数request_locale=zh_CN或者request_locale=en_US就会被i18N拦截器拦截然后转换成中文环境。

在Struts2.3.4的文档里面是这样介绍i18n的:
1.Messages and Errors from the ValidationAware interface (implemented by ActionSupport and ValidationAwareSupport)
2.Within action classes that extend ActionSupport through the getText() method


所以要想使用国际化功能必须实现ValidationAware接口或者继承ActionSupport

Resource Bundle Search Order(资源包搜索顺序)

    1.ActionClass.properties
    2.Interface.properties (every interface and sub-interface)
    3.BaseClass.properties (all the way to Object.properties)
    4.ModelDriven's model (if implements ModelDriven), for the model object repeat from 1
    5.package.properties (of the directory where class is located and every parent directory all the way to the root directory)
    6.search up the i18n message key hierarchy itself
    7.global resource properties


其顺序是Action类名的资源文件>>>>接口名的资源文件>>>>package.properties>>>>global.properties

资源文件名的命名包括基本名(如Action类名,message),语言代号(如en、zh),国家代号(如US、CN)组成。
例如基本名为message的简体中文资源文件就是message_zh_CN.properties


这是转码后的资源文件:
lable.titile=用户注册
lable.username=用户名
lable.pwd=密码
lable.age=年龄
lable.email=电子邮箱
lable.regbutton=注册按钮

validator.error.required={0}必须填写。
validator.error.maxlength={0}最多允许{1}个字符。
validator.error.range={0}必须介于{1}至{2}之间。
validator.error.regex={0}格式不正确。


在JSP页面中使用 s:text 标签对文本国际化:
<s:text name="lable.username"/>
<s:text name="lable.pwd"/>
<input type="submit" value='<s:text name="lable.regbutton"/>'/>
OGNL表达式读取国际化消息:
<s:set name="age" value="%{getText('lable.age')}"/>


使用带有占位符的国际化信息时:
//从资源文件中读取username.invalid的值,增加到ActionError中。 
addActionError(getText('validator.error.maxlength', {'密码', '20'})));


<s:text name="validator.error.range">
    <s:param>年龄</s:param>
    <s:param>0</s:param>
    <s:param>100</s:param>
</s:text>
分享到:
评论

相关推荐

    i18国际化struts标签

    i18n,struts2实现国际化 手动配置过滤器实现国际化

    struts2官方例子8-资源配置文件的使用(包括国际化)

    struts2官方例子8-资源配置文件的使用(包括国际化),主要讲述struts资源文件的使用,以及国际化i18n的使用

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts.custom.i18n.resources Location of additional localization properties files to load 加载附加的国际化属性文件(不包含.properties后缀) struts.custom.properties Location of additional ...

    Struts2 in action中文版

    11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243 11.2 Struts 2 i18n示例 244 11.2.1 Struts 2 i18n快速展示 244 11.2.2 幕后一览 246 11.3 Struts 2 i18n详情 247 11.3.1 Struts 2默认的TextProvider Re-...

    struts2_spring3_hibernate3_1.2

    使用技术说明: 1.使用struts2+spring3+hibernate3整合实现用户CRUD功能。... A.Struts2国际化(i18n)、本地化程序。 B.文件上传下载 C.DWR集成 D.Struts2异常处理 3.实现方式 基于配置文件

    Struts2.0中文教程权威版

    04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单数据校验(Validation) 07 Struts 2的基石——拦截器(Interceptor) 08 在Struts 2中实现...

    Struts2属性文件详解

    该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. struts.diSPAtcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet Request...

    struts2配置2.5版

    &lt;constant name="struts.i18n.encoding" value="utf-8" /&gt; 每次HTTP请求系统都重新加载资源文件,有助于开发 5.struts配置文件改动后,是否重新加载 &lt;constant name="struts.configuration.xml.reload" value=...

    struts2.0中国际化应用程序

    配置struts.properties 配置资源文件*.properties 前台页面i18n.jsp 配置struts.xml Action类文件的配置(I18NAction.java)

    Struts2\constant应用

    该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。 struts.dispatcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet...

    struts教学ppt

    一个很好的学习ppt Struts基本概念和体系结构 配置Struts应用 Struts框架响应客户请求的流程 Struts的内置Action类 Struts应用的国际化(I18N) Struts常用标签库

    解决struts2.1.6+spring+hibernate 中文乱码

    struts.i18n.reload=true #struts.locale=zh_CN struts.i18n.encoding=GBK ) web.xml(仅写出中文处理部分,spring的配置不用改变) &lt;filter-name&gt;encodingFilter &lt;filter-class&gt;org.springframework.web.filter...

    深入浅出Struts2(附源码)

    9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model Driven拦截器 197 10.3 Preparable拦截器 201 10.4 ...

    maven3+struts2+spring+ibatis

    maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate...2.struts2出现乱码的问题,解决方法:在struts.xml中加入 &lt;constant name="struts.i18n.encoding" value="gb2312" /&gt;即可

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    在计算机文档里,国际化(internationalization)通常简写为i18n,这是因为这个单词的第一个字母是i,最后一个字母是n,i和n之间总共有18个字母。与国际化相对应的是本地化,指让一个具备国际化支持的应用程序支持...

    structs程序设计从入门到精通word文档

    第10章 struts中使用国际化(i18n) 13 10.1 struts国际化程序尝试 13 10.1 Java对i18n的支持 14 10.1 struts框架中对国际化的支持 14 第11章 Validator验证框架 14 11.1 安装和配置Validator验证框架 14 11.1 ...

    struts简单实现用户注册(最新修订)

    加入国际化I18N 2.log4j 3.自定义tag 4.show.jsp列表的empID字段的sort 5.struts的validate 6.ajax实现的分页 7.ajax实现了省市下拉列表的联动 8.ajax的文件上传 9.批量删除 10.token控制刷新提交 11.简单...

    maven3.0+struts+spring+hibernate

    1.STRUTS2乱码,解决方法是在struts.xml中加入 &lt;constant name="struts.i18n.encoding" value="gb2312" /&gt; 2.验证失败一次后就连续验证失败 (即使密码正确) 这个属于与Spring整合的问题,Spring容器在初始化对象的...

Global site tag (gtag.js) - Google Analytics