`
luhai1992
  • 浏览: 56854 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Struts1国际化小结

    博客分类:
  • java
阅读更多

Struts1国际化小结

一、java中的国际化

a)         jave中实现国际化的原理

java中通过Locale对象可以指定或得到当前系统的默认国际化配置及语言代码和国家代码,然后通过ResourceBundle类得到对应Lacale对象的国际化配置文件即Properties文件,通过读取键的值实现国际化。

b)         java中实现国际化需要的类

locale类:

可以指定所要显示的语言,即对应的国际化文件

Locale类的方法:

//得到当前系统默认的编码

           Locale l=Locale.getDefault();

                                 //自定义Locale

                                 //参数1:语言编码en(英文) zh(中文) ja(日本)

                                  //参数2;国家编码US(英国) CN(中国)JP(日本)

           Locale l1=new Locale("en","US");

           //得到国家代码

           l.getCountry();

           //得到语言代码

l.getLanguage();

        ResourceBundle类:

                      可以读取相应的Locale 对应的property文件

c)     更改系统默认的国际化编码

控制面板语言区域

d)     IE中修改默认的编码

IE首选项语言

e)         property文件的文件名编写规则

Basename语言代码_国家代码.properties

说明: BaseName名可以自定义但后面的名称必须按以上规则书写

f)          读取对应的Properties文件

           //读取对应的Properties文件

           //第一个参数对应相应的basename

           //第二个参数对应相应的Locale

ResourceBundle rb=ResourceBundle.getBundle("Message",l);

           rb.getString("key");

g)      Properties文件的中文乱码问题

在读取Properties文件时键对应的中文键值会出现乱码应使用jdknative2ascii.exe 工具将中文转换成unicode码再写入Properties文件中

h)     Native2ascii .exe的使用方法

jdkbin目录下双击native2ascii.exe 将需要转换的中文copy到该命令提示行下 回车即可看到转换的unicode编码将其替换对应键的值即可

Eg

      a=你好

      替换成 a= \uf60\u597d

批量替换

       Native2ascii.exe 源文件路径 替换文件路径

系统会自动根据控制面板设置的国际化编码进行转换。

i)       Properties 文件的占位符问题

Properties 文件中可以使用{0}{1}进行占位符设置注意是从0位开始

使用占位符

              MessageFormat mf =new MessageFormat(rb.getString("键名"));

      String result = mf.format(new Object[]{"a","b"});

j)       国际化文件的路径问题

ResourceBundle rb=ResourceBundle.getBundle("Message",l);

默认读取的是src下的文件,若路径不同应标明路径

方法:msg + . + Properties文件的BaseName

Eg: msg.Message

k)      注意:

默认情况下ResourceBundle会根据参数Locale的国家代码和语言代码自动匹配相应的Properties文件进行读取(所以properties文件的命名必须合法)

若没有找到相应文件则加载系统默认的国际化配置文件(读取系统设置的国家代码和语言代码)若系统的设置也没有与之对应的properties文件则加载Basename.properties文件。若还没有对应文件则报错。

l)       注意2:新建java项目进行测试时必须建立源src文件夹否则报错。

二、 Struts硬编码国际化

a)      Stuts硬编码国际化即对页面中不变的文字进行国际化处理。

b)      使用方法

                 i.          struts-config.xml:文件中加入

<message-resources parameter="MessageResources" />

第一个参数及Properties文件BaseName的名称

                ii.          properties文件中配置相关的字段,注意中文要转换成unicode

               iii.          在页面中用Struts标签替换需要国际化的内容

<bean:message key=” ”>

c)      注意:加载国际化文件时若没有找得相关文件(IE中的国际化配置)则会根据操作系统的语言配置进行查找若还没有会加载默认文件即 Basename.properties文件。

d)      通过修改session 实现手动修改语言

request.getSession().setAttribute(Globals.LOCALE_KEY, currentLocale);

第二个参数为自定义的Locale对象。

或者:

this.setLocale(request, currentLocale);

第二个参数为自定义的Locale对象

三、 动态文本国际化

1、  方法

action中定义普通信息和错误信息

ActionMessage m=new ActionMessage("upass",new Object[]{"pppp"});

第一个参数是该信息的key值,第二个参数是占位符的内容,若仅有一个占位符可以不用object数组

直接写成String类型的参数

ActionMessage m=new ActionMessage("upass",”sss”);

 

2、 分别定义普通信息和错误信息的ActionMessages

ActionMessages messages=new ActionMessages();

 

3、 将普通信息和错误信息分别放入相应的messages

Messages.add("uu",m3);

第一个参数为信息的名称,第二个参数为定义的ActionMessage

4、 将普通信息存入

this.saveMessages(request,messages);

注意 选择方法是应选择第二个弹出的方法,第一个参数是作用域,第二个参数为信息的集合。

5、 将错误信息存入

this.saveErrors(request, messages2);

注意 选择方法是应选择第二个弹出的方法,第一个参数是作用域,第二个参数为信息的集合。

6、 读取普通信息

   <html:messages id="s" message="true">

       <bean:write name="s"/>

   </html:messages>

 

解析: message=”true”信息标识此标签读取的是普通信息

Id表示从普通信息的集合中取出的每一个元素相当于iterator标签的id

   <hr>

      <html:messages id="s" message="true" property="upass">

       <bean:write name="s"/>

   </html:messages>

解析: message=”true”信息标识此标签读取的是普通信息。

          Property表示从该信息集合中取出名为此属性值的元素的集合。

Id表示从普通信息的集合中取出的每一个元素相当于iterator标签的id

7、 读取错误信息

<html:messages id="s" property="upass">

   <bean:write name="s"/>

   </html:messages>

 解析: message标签默认读取的是错误信息。

   <html:errors property="uu"/><br>

解析:该标签可以读取所有错误信息也可根据property读出所有是该属性名的错误信息的集合。

 

 

8、 错误信息的格式定义

定义在国际化的Properties文件中

Eg

errors.header=<UL> 信息的头部代码

errors.prefix=<LI><font color="red"> 每条信息的开头代码

errors.suffix=</font></LI>每条信息的结尾代码

errors.footer=</UL> 信息的尾部代码

 

 

 

 

1
1
分享到:
评论
1 楼 mqlfly2008 2010-08-26  
正好是我需要的,3q

相关推荐

    Struts2 in action中文版

    第11章 理解国际化 240 11.1 Struts 2框架和Java i18n 241 11.1.1 使用ResourceBundle和Locale取得本地化文本 241 11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243 11.2 Struts 2 i18n示例 244 11.2.1 Struts ...

    深入浅出Struts2(附源码)

    9.2 Struts中的国际化支持 185 9.3 text标签 188 9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model ...

    Struts2入门教程(全新完整版)

    一、准备工作及实例 3 ...小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 ...

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

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

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

    3.3Struts-config.xml配置文件讲解 3.4struts中文问题","struts国际化问题"??终极解决方案 9 3.5为 Web 服务构建 Struts 应用程序 9 3.6Struts标记库是如何工作的 9 3.7Struts 9 3.8struts简单例子的分析(含代码...

    低清版 大型门户网站是这样炼成的.pdf

    2.5.3 自定义国际化struts 2校验错误消息 92 2.5.4 struts 2的自带校验器 92 2.6 struts 2的拦截器 94 2.6.1 struts 2内建拦截器介绍 95 2.6.2 定义和使用拦截器栈 97 2.6.3 使用自定义拦截器 98 2.7 小结 100...

    JAVA WEB典型模块与项目实战大全

    第22章 用户登录模块(struts 2.x+guice+国际化)  22.1 用户登录概述  22.2 关于用户登录的基础知识——国际化资源  22.3 关于用户登录的基础知识——guice框架  22.4 用户登录的具体实现  22.5 小结  ...

    Struts in Action中文版

    1.2. 小结.......................................................................................................................36 2. 深入 STRUTS架构.....................................................

    Java Web程序设计教程

    程序设计教程.pdf&gt;&gt;人民邮电出版社的教程哦,所以,好书,你懂的!! 第1章web应用开发简介 1 1.1何为web应用 1 1.1.1web的概念及发展 1 1.1.2web应用程序 2 1.2使用java开发web应用 3 ...本章小结 342

    struts in Action

    1.2. 小结.......................................................................................................................36 2. 深入STRUTS 架构......................................................

    JAVA程序开发大全---上半部分

    12.2.5 Struts 2.0中的国际化编程 221 12.2.6 创建基于POJO的Action 223 12.3 Spring整合Struts 2.0框架 224 12.4 Struts 2.0应用实例:登录系统 227 12.5 本章小结 231 第13章 JPA的开发与应用 232 13.1 JPA规范...

    Java EE Web开发实例精解完整光盘

     除了对JAVA EE Web编程基本技术的讲解淙外,还针对Web应用开发中如打印、图表、日志、上传、下载和国际化等常见功能特性的实现,综合运用多种JAVA EE开发技术,提出多种解决方案,并深入讲座分析,对开发人员动手...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    Spring攻略(第二版 中文高清版).part1

    11.7 国际化(I18n)信息属性 458 11.7.1 问题 458 11.7.2 解决方案 458 11.7.3 工作原理 458 11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 ...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    Spring攻略(第二版 中文高清版).part2

    11.7 国际化(I18n)信息属性 458 11.7.1 问题 458 11.7.2 解决方案 458 11.7.3 工作原理 458 11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 ...

Global site tag (gtag.js) - Google Analytics