Struts2学习笔记(3)之国际化
来源:互联网 发布:159素食全餐淘宝好便宜 编辑:程序博客网 时间:2024/05/18 23:53
国际化
配置国际化全局资源文件
1. 准备资源文件,资源文件命名格式:例如
中国大陆:baseName_zh_CN.properties
美国:baseName_en_US.properties
在资源文件中以键-值的形式表现出来。
2. 在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件:
<constant name=” struts.custom.i18n.resources” value=”baseName”>
3. 在页面或action中访问国际化信息:
1) 在jsp页面中使用<s:text name=”key”/> key为配置文件中的键。
2) 在action类中,可以使用ActionSupport,使用getText(key)方法得到国际化信息。Key为配置文件中的键。
4. 输出带有占位符的国际化信息
1) 资源文件:{0},欢迎来到传智播客,{1}
2) 在jsp中输出带有占位符的国际化信息
<s:text name=”baseName”>
<s:param><s:propertyvalue=”param”/></s:param>
<s:param>hello</s:param>
</s:text>
3) 在Action中添加占位符信息
this.getText("baseName” , new String[]{“hello”,”你好”});
包范围资源文件
1. 在对应的包中创建资源文件
2. 资源文件的名字必须是:package_language_country.properties资源文件。必须以package开头。
3. 处于该包下的Action查找指定的key的消息时:
1) 从package资源查找。
2) 当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。即全局资源文件中找
Action范围资源文件
1. 同包范围资源文件。
2. 资源名:以具体的ActionClassName开头。
3. 查找顺序:从小到大。即action->package->basename
自动切换
例如切换到英文:只需在超链接的URL后+request_locale=en_US,这样就可使请求的Action下的视图切换为对应的语言。
Struts2调用Action的源码分析(拦截器)
1. 请求被web.xml中拦截器,拦截,执行对应拦截器中的doFilter()方法。
2. 在doFilter中执行了executeAction(),并在其中调用Dispatcher对象的serviceAction()
3. Dispatcher创建了一个ActionProxy(动态代理的)对象proxy。调用proxy的execute()方法。
4. 在ActionProxy方法中,获得ActionInvocation对象,这个对象封装了这个action父包中的所有拦截器以及自己的action。
5. 通过ActionInvocation对象invocation。执行invocation.invoke(),从父包中依次执行intercept(拦截器)。【具体过程见上图】。
6. 当所有的拦截器执行结束后,才执行action。
7. 默认调用action#execute()方法。
自定义类型转换器
1. 定义类型转换器的类
1) 继承DefaultTypeConverter类。
2) 重写converValue方法。
2. 注册类型转换器:
1) 注册为局部类型转换器
a) 在Action类所在的包内放置”ActionClassName”-conversion.properties文件。其中ActionClassName是Action的类名称。
b) 填写配置信息:属性名=类型转换器类的全路径名称
其中属性是Action类中需要转换的属性名称
2) 注册为全局类型转换器
a) 在根目录中放置xwork-conversion.properties文件。
b) 填写配置信息:带转换类型=类型转换器类的全路径名称。不能是属性必须是类型。
例如:java.util.Data=cn.itcase.conversion.DateConerter
- Struts2学习笔记(3)之国际化
- struts2学习笔记之九(国际化)
- struts2学习笔记之十八(国际化)
- Struts2学习笔记之国际化
- Struts2学习笔记之国际化
- J2EE系列之Struts2学习笔记(十八)--Struts2国际化
- 【Struts2学习笔记(12)】Struts2国际化
- Struts2学习笔记之国际化一
- Struts2.x 学习笔记 之 国际化
- 学习笔记-------------------struts2国际化
- 国际化---struts2学习笔记
- struts2学习笔记----国际化
- struts2学习之---国际化
- Struts2学习笔记(十)国际化
- Struts2学习笔记 国际化(Internationalization)
- struts2学习笔记(八)国际化
- 【Struts2】struts2学习(3) 资源国际化
- struts2学习笔记6--国际化
- 使用R语言分析股价波动
- 诡异的楼梯 hdu 1180
- QPS UV PV
- 【JSTL】-EL表达式
- 【ITOO】---easyUI的Combobox实现级联查询
- Struts2学习笔记(3)之国际化
- iOS 类似于礼物说分类栏TableView,CollectionView联动的实现
- php 冒泡排序
- hdu4300 Clairewd’s message 扩展KMP
- swoole & redis实现 Rest api
- UIIAlertController的自动消失
- svn 清理失败 (clean up 失败) 的解决方法
- System.Diagnostics命名空间里的Debug类和Trace类的用途
- 【慕课笔记】第七章 方法 第2节 JAVA中无参无返回值方法的使用