struts国际化2

来源:互联网 发布:java地图数据采集 编辑:程序博客网 时间:2024/05/16 19:34

truts2 国际化

    I18n----internationalization

Struts2国际化原理

       国际化和本地化指让产品(比如软件、出版物等)能够适应非本地环境,特别是其他的语言和文化。程序在不修改内部代码的情况下,能根据不同的语言及地区显示相应的界面。

       国家化资源文件:用不同国家的语言描述相同的信息,并放在各自对应的.properties属性文件中,程序根据运行环境决定加载那个文件。

       国际化主要通过以下类完成:

       Java.util.Locale:对应一个特定的国家/区域、语言环境   

Java.util.ResourceBundle:用于加载一个资源包

I18nInterceptor:Struts2所提供的国际化拦截器,负责处理Locale相关信息

国际化流程:

程序得到当前运行环境的国家/区域、语言环境并存放于LocaleResourceBundle根据Locale中信息自动搜索对应的国际化资源文件并加载。当某个Action被执行前,I18nInterceptor负责检测Locale相关信息来寻找对应的国际化资源。

 

Struts2 国际化步骤

先准备各语言的资源文件,在资源文件中定义键和对应的字符串,然后显示的地方指定键就可以了。

1、 编写并配置国际化资源文件

资源文件的命名有三种方式:

1) baseName_language_country.properties

2) baseName_language.properties

3) baseName.properties

如创建中文和英文国际化,资源文件名称为:

globalMessages_zh_CN.properties

globalMessages_en_US.properties

其中globalMessages为基本名。

国际化资源文件分为三种级别:

1) 全局资源文件:放在WEB-INF/classes路径下,可以被整个工程引用,需要在struts.properties文件中加入如下内容

Struts.custom.i18n.resources=资源文件的基本名

或者在struts.xml文件中加入

<constantname=”struts.custom.i18n.resources” value=”资源文件基本名” />

2) 包级别资源文件

3) Action级别资源文件

 

2、 调用国际化资源

 

Struts2 国际化实例

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

java中测试的步骤:

1.      编写资源文件

 

welcome=你好!!!

 

we=余秀飞!!

 

2.      main方法中调用测试

   

publicstaticvoid main(String[] args) {

       ResourceBundle res=ResourceBundle.getBundle("my",Locale.CHINA);

       System.out.println(res.getString("welcome"));

       System.out.println(res.getString("we"));

    }

 

 

 

struts2中的应用步骤

 

开发步骤:

1、 编写页面文件

  

红色的阴影部分为中英文切换的超链接

 

<body>

<s:formaction="login" theme="simple">

 <s:propertyvalue="getText('admin.username')"/><s:textfieldname="username"></s:textfield><br/>

 <s:propertyvalue="getText('admin.userpass')"/><s:textfieldname="userpass"></s:textfield><br/>

   

    <inputtype="submit"value=<s:propertyvalue="getText('admin.login')"/> /><br/>

   

    <ahref="login?request_locale=zh_CN">中文</a>

    <ahref="login?request_locale=en_US">English</a>  

 </s:form>

  </body>

 

2、 编写资源文件

1)表写中文资源文件   my_zh_cn.properties

admin.username=用户名:

admin.userpass=密码:

 

admin.login=登录

2)编写英文资源文件   my_en_US.properties

admin.username=username

admin.userpass=userpass

 

admin.login=login

 

3、 配置在struts.xml文件中配置资源文件

 

<struts>

        <constantname="struts.devMode"value="true"/>

        <constantname="struts.custom.i18n.resources" value="my"></constant>

       <packagename="struts2"extends="struts-default">

           <actionname="login"class="com.fei.action.FileAction">

                      <result>/index.jsp</result>         </action>

       </package>

    </struts>    

 

4、 在页面调用资源文件

  

步骤一中的黄色阴影部分的代码即为调用资源文件的代码

5、 运行结果

当点击中文时显示

当点击English时显示

 

原创粉丝点击