struts2中的国际化
- 实现struts2中国际化其实非常简单
首先,struts2中的国际化是通过资源文件来配置的。
资源文件分为:action类级,package类级,还有webapp类级的
1.action类级的:
新建一个.properites的资源文件。命名必须规范:action名_编码_地区,action名必须与你当前的action的名字相同,编码和地区可以通过IE的语言栏查看。然后就是编写你的资源文件:写的时候可以通过eclipse的可视化操作直接写数据。他可以帮你自动转换编码:
- login_submit=\u63D0\u4EA4
- login_reset=\u91CD\u7F6E
- login_sex=\u6027\u522B
- login_page=\u767B\u5F55\u9875\u9762
- login_password=\u5BC6\u7801
- login_username=\u7528\u6237\u540D
- login_sex_male=\u7537
- login_sex_female=\u5973
- login_hf=\u5A5A\u5426
2.package类级的:
该资源文件必须在你要映射的包下。其中命名必须以package开头,package_编码_地区。其他地方都一样。
3.整个应用类级的:
该资源文件必须放在你的src目录下。命名可随意起,名称_编码_地区。需要注意点是:这个还需配置一个常量:可在struts,xml文件中配置
- <constant name="struts.custom.i18n.resources" value="i18n"></constant>
或是在default.properites文件中配置。
4.获取值:替换当前的中文:
可以通过key,或%{getText('name')}获取,例;
- <s:form method="post" action="login" >
- <s:textfield name="username" value="" key="login_username" required="true" requiredposition="left" />
- <s:password name="password" value="" label="%{getText('login_password')}" required="true" />
- <s:radio list="#{1:getText('login_sex_male'),0:getText('login_sex_female')}" name="sex" value="1" key="login_sex" />
- <s:checkbox key="login_hf" value="" name="hf"/>
- <s:submit key="login_submit" /><s:reset key="login_reset"/>
- </s:form>
5.这三个的资源文件的优先级:
先找action类级的,再找到包类级的。最后才是webapp类级的。如果有冲突。就近原则。
6.语言切换:
先在jsp中添加两个链接。
- <a href="changeLang.action?lang=1">中文</a>
- <a href="changeLang.action?lang=2">english</a>
然后再写一个action类。重写execute方法:
- public class ChangeLang extends ActionSupport {
- private String lang;
- Locale l=null;
- @Override
- public String execute() throws Exception {
- if(lang.equals("1")){
- //中文版
- l=Locale.CHINA;
- }else{
- //英文版
- l=Locale.US;
- }
- ActionContext.getContext().setLocale(l);//添加到locale对象中
- ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE", l);//设置locale的属性
- return LOGIN;
- }
- }
最后在struts.xml文件中注册下这个action类就行了
- <action name="changeLang" class="com.accp.testAction.ChangeLang">
- <result name="login">/Login.jsp</result>
- </action>
struts2中的国际化的更多相关文章
- Struts2学习笔记 国际化(Internationalization)
概述 国际化(Internationalization),通途的讲,就是让软件实现对多种语言的支持.可以通过简单的设置就可以从一种语言切换到另一种语言.用的最多的地方就是在应用程序的界面表示上.我们经 ...
- Struts2入门(六)——国际化
一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...
- struts2中各个jar包作用
Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...
- Struts2中Date日期转换的问题
今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforC ...
- struts2中的jar包
核心包: (后面数字是版本号,不同struts2版本,数字可能不一样.) struts2-core-2.1.8.1 struts2的核心jar包,不可缺少的 xwork-core-2.1.6 xwor ...
- 5.Struts2中的拦截器
拦截器是Struts2中的核心,其自带很多很多的拦截器,这里主要介绍一下自定义拦截器,恩多一半情况下呢?我们不需要使用到自定义的拦截器,Struts2本身已经提 供了很多的拦截器供我们使用,对于自定义 ...
- struts2 中 Actionsupport 的作用
struts2 中 Actionsupport 的作用 Action 跟 Actionsupport 的区别 当我们在写action的时候,可以实现Action接口,也可以继承Actionsu ...
- struts2中struts.xml配置文件详解【未整理】
1. 深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1. 包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...
- struts2中constant参数设置
序号 方法 说明 1 <constant name="struts.i18n.encoding" value="UTF-8"/> 指定web应用默认 ...
随机推荐
- UC浏览器 分享到朋友圈和微信好友
用手机UC浏览器访问新浪微博,会注意到有这样的两个分享按钮: 在手机端浏览器里,点击分享按钮,就可以启动微信客户端并分享到微信.研究了下其源代码,存在这样的一个js:http://mjs.sinaim ...
- vc 获取当前时间
1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime:: GetCurrentTime_r(); str=tm.Format("现在时间是% ...
- web多语言的一种处理方式
在开发一种国际化系统时,多语言是必须的. 总的来说处理方式有两种,一种是后端处理,另一种是前端处理.呵呵,有点废话~~ 后端处理没用过,猜猜是在标记需要处理语言的地方进行替换. 前端处理是要先把语言文 ...
- 在js传递参数中含加号(+)的处理方式
一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+).但是对于带有中文的参数来 ...
- 织梦dedecms自定义字段在首页列表页文章页的调用
1.首页调用. {dede:arclist addfields='字段英文名' channelid='模型ID' row='条数' type='栏目ID'} [field:字段英文名/ ...
- HDU 5492(DP) Find a path
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意是有一个矩阵,从左上角走到右下角,每次能向右或者向下,把经过的数字记下来,找出一条路径是 ...
- Java笔记--java一行一行写入或读取数据
转自 Ruthless java一行一行写入或读取数据 链接:http://www.cnblogs.com/linjiqin/archive/2011/03/23/1992250.html 假如E:/ ...
- 利用Azure高级存储搭建高性能Linux服务器(1)
目前Azure针对虚拟机提供两种类型的存储,一种是标准存储,基于HDD的,一种是高性能存储Premium Storage(在下文中简称PS),基于SSD的.针对用户高性能,低延迟,I/O密集型的应用, ...
- FPGA技术的一些基本概念(综合、BlackBox)(转)
原文:http://blog.sina.com.cn/s/blog_6254a8ca0100i0wr.html 原文也是转的,哈哈,大家多转转,转转更健康.删除了一些Xilinx的东西 前言 综合是将 ...
- nm和readelf命令的区别
其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题. 事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to “XXX”的错误,需要链接 ...