[java] view
plain
copy

  1. 实现struts2中国际化其实非常简单

首先,struts2中的国际化是通过资源文件来配置的。

资源文件分为:action类级,package类级,还有webapp类级的

1.action类级的:

新建一个.properites的资源文件。命名必须规范:action名_编码_地区,action名必须与你当前的action的名字相同,编码和地区可以通过IE的语言栏查看。然后就是编写你的资源文件:写的时候可以通过eclipse的可视化操作直接写数据。他可以帮你自动转换编码:

[java] view
plain
copy

  1. login_submit=\u63D0\u4EA4
  2. login_reset=\u91CD\u7F6E
  3. login_sex=\u6027\u522B
  4. login_page=\u767B\u5F55\u9875\u9762
  5. login_password=\u5BC6\u7801
  6. login_username=\u7528\u6237\u540D
  7. login_sex_male=\u7537
  8. login_sex_female=\u5973
  9. login_hf=\u5A5A\u5426

2.package类级的:

该资源文件必须在你要映射的包下。其中命名必须以package开头,package_编码_地区。其他地方都一样。

3.整个应用类级的:

该资源文件必须放在你的src目录下。命名可随意起,名称_编码_地区。需要注意点是:这个还需配置一个常量:可在struts,xml文件中配置

[java] view
plain
copy

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

或是在default.properites文件中配置。

4.获取值:替换当前的中文:

可以通过key,或%{getText('name')}获取,例;

[java] view
plain
copy

  1. <s:form method="post" action="login" >
  2. <s:textfield name="username" value="" key="login_username" required="true" requiredposition="left" />
  3. <s:password name="password" value="" label="%{getText('login_password')}" required="true" />
  4. <s:radio list="#{1:getText('login_sex_male'),0:getText('login_sex_female')}" name="sex" value="1" key="login_sex" />
  5. <s:checkbox key="login_hf" value="" name="hf"/>
  6. <s:submit key="login_submit" /><s:reset key="login_reset"/>
  7. </s:form>

5.这三个的资源文件的优先级:

先找action类级的,再找到包类级的。最后才是webapp类级的。如果有冲突。就近原则。

6.语言切换:

先在jsp中添加两个链接。

[java] view
plain
copy

  1. <a href="changeLang.action?lang=1">中文</a>
  2. <a href="changeLang.action?lang=2">english</a>

然后再写一个action类。重写execute方法:

[java] view
plain
copy

  1. public class ChangeLang extends ActionSupport {
  2. private String lang;
  3. Locale l=null;
  4. @Override
  5. public String execute() throws Exception {
  6. if(lang.equals("1")){
  7. //中文版
  8. l=Locale.CHINA;
  9. }else{
  10. //英文版
  11. l=Locale.US;
  12. }
  13. ActionContext.getContext().setLocale(l);//添加到locale对象中
  14. ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE", l);//设置locale的属性
  15. return LOGIN;
  16. }
[java] view
plain
copy

  1. }

最后在struts.xml文件中注册下这个action类就行了

[java] view
plain
copy

  1. <action name="changeLang" class="com.accp.testAction.ChangeLang">
  2. <result name="login">/Login.jsp</result>
  3. </action>

struts2中的国际化的更多相关文章

  1. Struts2学习笔记 国际化(Internationalization)

    概述 国际化(Internationalization),通途的讲,就是让软件实现对多种语言的支持.可以通过简单的设置就可以从一种语言切换到另一种语言.用的最多的地方就是在应用程序的界面表示上.我们经 ...

  2. Struts2入门(六)——国际化

    一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...

  3. struts2中各个jar包作用

    Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...

  4. Struts2中Date日期转换的问题

      今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforC ...

  5. struts2中的jar包

    核心包: (后面数字是版本号,不同struts2版本,数字可能不一样.) struts2-core-2.1.8.1 struts2的核心jar包,不可缺少的 xwork-core-2.1.6 xwor ...

  6. 5.Struts2中的拦截器

    拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提 供了很多的拦截器供我们使用,对于自定义 ...

  7. struts2 中 Actionsupport 的作用

    struts2 中 Actionsupport 的作用 Action 跟 Actionsupport 的区别     当我们在写action的时候,可以实现Action接口,也可以继承Actionsu ...

  8. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

  9. struts2中constant参数设置

    序号 方法 说明 1 <constant name="struts.i18n.encoding" value="UTF-8"/> 指定web应用默认 ...

随机推荐

  1. 用Java来比较JavaScript的一些特性

    由于是从java做到JavaScript,所以对强弱语言类型,还是比较敏感的.JavaScript是弱语言,只严格区分数据和指令.简单描述下自己对两者之间的一些区别吧. 1.JavaScript变量的 ...

  2. 头文件 .h 与源文件 .ccp 的区别

    .h 文件一般是用来定义的,比如定义函数.类.结构体等: .cpp 文件则是对头文件的定义进行实现. include .h文件,可以调用你声明的函数.类等.当然,比较简单的类.函数,你也可以直接在头文 ...

  3. JDK+Eclipse+MyEclipse+tomcat的安装与配置

    以下我所使用的各软件版本为:JDK(1.6):eclipse(3.2.2):myEclipse(5.5.1GA):tomcat(5.5.12): 一.安装JDK: 下载完JDK(1.6)后双击进行安装 ...

  4. 电脑文本text和部分文字出现其他语言乱码

     1.文本的编码存在问题 解决办法: 将text文件打开>>文件(左上角)>>另存为>>选择其他格式的编码试试(在保存键左侧)>>保存再打开 2.系统区 ...

  5. ubuntu12.04 安装 ruby1.9.3

    sudo apt-add-repository ppa:brightbox/ruby-ng sudo apt-get update sudo apt-get install ruby rubygems ...

  6. 图片以BLOB存储在后台数据库中,Android客户端要进行读取显示

    解决方法: 1:在后台以InputStream的方式将图片从数据库中读出: public static InputStream getPicInputStream(){ String id = &qu ...

  7. format %x invalid or incompatible with argument问题解决方法

    现在还有好多朋友在用Protel 99se来画图,可是在现在的双核或四核电脑上运行Protel出现错误并且弹出对话框:“format '%x' invalid or incompatible with ...

  8. Find Peak Element 解答

    Question A peak element is an element that is greater than its neighbors. Given an input array where ...

  9. 精确覆盖DLX算法模板

    代码 struct DLX { int n,id; int L[maxn],R[maxn],U[maxn],D[maxn]; ]; ) //传列长 { n=nn; ;i<=n;i++) U[i] ...

  10. 构建高性能WEB站点笔记三

    构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...