06章 Struts2国际化
1:什么是国际化?
国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
2:在什么样的状况下使用国际化?
国际化是指的多语言支持,比方说你登录一个系统后,页面上的标签可以默认显示中文,或者默认显示英文。国际化在web开发中比较常用,以便于不同母语的用户使用系统。
3:为什么使用国际化?
原因:因为语言种类繁多
4、如何国际化一个项目?
①准备界面:
注:使用ognl表达式展示国际化!<s:text>,也可以放在<s:i81n>标签中。

② 创建Action类,并继承自ActionSupport类,重写execute(),封装对应的属性:

③ struts.xml配置:

注:
①将程序中的提示信息、错误信息等放在资源文件中,为不同国家/语言编写对应资源文件
②资源文件由很多key-value对组成,key保持不变,value随国家/语言不同而不同
③这些资源文件使用共同的基名,通过在基名后面添加语言代码、国家和地区代码来进行区分

④ 配置资源文件 --中文 message.properties
注:name值必须和实体类属性值一致


英文--message_en.properties


⑤改变浏览器的语言首选项,通过上设置--语言设置来改变

实现效果:
中文:

英文:

使用国际化对页面信息进行验证:[全局、特定类]
① 在UserAction类中重写validate()
注:getText方法在ActionSupport类中

创建xml文件UserAction-validation.xml
注:message节点的key值必须和资源文件的name保持一致

② 在中文和英文资源文件中进行配置:

实现效果:
中文:

英文:

06章 Struts2国际化的更多相关文章
- 06章 Struts2数据校验
一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...
- struts2国际化
struts2国际化 1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素 ...
- 异步编程系列06章 以Task为基础的异步模式(TAP)
p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...
- 【转】Struts2国际化
原文章:http://www.cnblogs.com/hellokitty1/p/5083663.html 简单理解 国际化简称i18n,其来源是英文单词 internationalizati ...
- 第3章 Struts2框架--1、Struts2环境搭建
第3章 Struts2框架--1.Struts2环境搭建 搭建步骤: 1.从下载http://struts.apache.org 没找到Struts2.3.16版,就下载了2.3.29 2.拷贝后解压 ...
- (六)Struts2 国际化
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:国际化简介 国际化(Internationlization),通俗地讲, ...
- struts2系列(四):struts2国际化的多种方式
一.struts2国际化原理 根据不同的Locale读取不同的文本. 例如有两个资源文件: 第一个:message_zh_CN.properties 第二个:message_en_US.propert ...
- 菜鸟学SSH(三)——Struts2国际化自动检测浏览器语言版
前几天发了一篇Struts国际化的博客——<菜鸟学习SSH(二)——Struts2国际化手动切换版>,有网友提了一个意见,见下图: 于是就有了下面修改的版本: web.xml <?x ...
- struts2学习(10)struts2国际化
一.国际化简介: 二.struts2国际化设置: struts.xml: <?xml version="1.0" encoding="UTF-8" ?&g ...
随机推荐
- [deviceone开发]-do_GridView的简单示例
一.简介 do_GridView的高度支持-1,根据gridview里item的个数来决定gridview的高度,这样gridview自身就无法滚动了,需要放到固定高度的scrollview里才能滚动 ...
- 一个解决表单中的文字和文本区域(textarea)上对齐的方法
在进行表单布局的时候通常会遇到这样的情况 文本和textarea标签是底部对齐的 <p><em>邮箱</em><textarea style='height: ...
- 从零开始,做一个NodeJS博客(一):Heroku上的最简NodeJS服务器
标签:NodeJS,Heroku 0 这里是这个伪系列的第一篇,因为我也不知道自己能不能做完,然后到底能做成什么样子.总之,尽力而为吧,加油. 1 Heroku App 的构成 Heroku 所谓的 ...
- ae_feature的插入、复制和删除
1.插入 /// <summary> ///向featureclass中批量插入features ,批量插入features,用buffer的方法,要比循环一个个Store的方法快 /// ...
- AE_复制当前图层
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e) { int layercount = axMapControl2. ...
- sharepoint列表如何进行随机取几条记录?
sharepoint列表如何进行随机取记录?由于itemid是不连续.可能存在删除添加等操作导致 我们可以采用随机取第几条记录.把记录集合取出来.产生随机第几条数.这里关键是如何产生不重复的随机数 方 ...
- 对称密码-DES和3DES
最近在看信息安全的知识,就总结了一下自己所学到知识. 先说一下什么是对称密码算法,什么是对称密码算法呢?对称密码算法是指有了加密密钥就可以推算出解密密钥,有了解密密钥就可以推算出加密密钥的的算法. 那 ...
- IOS开发札记
//遍历所有的子控件,并打印其Frame +(NSString )searchAllSubviews:(UIView )superview { NSMutableString xml = [NSMut ...
- Xcode常用快捷键
1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD+OPt+S:保存所有文件CMD + SHIFT + S: 另存为CMD + ...
- JavaScript学习13 JavaScript中的继承
JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...