Struts2(十三):超链接实现动态加载国际化资源文件
2017-07-21 14:17
323 查看
使用i18n拦截器实现
一,i18n拦截器:
i18n注册在默认的拦截器栈中
1.拦截器工作流程(如何获取Locale对象):
(1) 拦截器在执行Action方法之前,自动查找一个名为request_locale的参数
(2)如果该参数存在:拦截器就将其作为参数,转换成Locale对象,并将其设为用户默认的Locale(代表国家/语言环境)。并将其设置为session的WW_TRANS_I18N_LOCALE属性
(3)如果request没有request_locale这个参数则i18n拦截器将会从session中获取WW_TRANS_I18N_LOCALE属性值,如果该属性值不为空,则将该属性值设为浏览者默认的Locale
(4)若session中的WW_TRANS_I18N_LOCALE的属性值为空,则从ActionContext中获取Locale对象
2.工作流程图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201707/bae14ddcf02d85c7f044f9db4a4d5675)
二,实现
在超链接后面加上:request_locale的请求参数,值是语言国际代码:
<a href="test.action?request_Locale=en_US">English</a>
<a href="test.action?request_Locale=zh_CN">中文</a>
不能写成:因为没有经过拦截器
<a href="i18n.jsp?request_Locale=en_US">English</a>
一,i18n拦截器:
i18n注册在默认的拦截器栈中
1.拦截器工作流程(如何获取Locale对象):
(1) 拦截器在执行Action方法之前,自动查找一个名为request_locale的参数
(2)如果该参数存在:拦截器就将其作为参数,转换成Locale对象,并将其设为用户默认的Locale(代表国家/语言环境)。并将其设置为session的WW_TRANS_I18N_LOCALE属性
(3)如果request没有request_locale这个参数则i18n拦截器将会从session中获取WW_TRANS_I18N_LOCALE属性值,如果该属性值不为空,则将该属性值设为浏览者默认的Locale
(4)若session中的WW_TRANS_I18N_LOCALE的属性值为空,则从ActionContext中获取Locale对象
2.工作流程图:
二,实现
在超链接后面加上:request_locale的请求参数,值是语言国际代码:
<a href="test.action?request_Locale=en_US">English</a>
<a href="test.action?request_Locale=zh_CN">中文</a>
不能写成:因为没有经过拦截器
<a href="i18n.jsp?request_Locale=en_US">English</a>
相关文章推荐
- struts2--通过超链接动态加载国际化资源文件
- Struts2.x 学习笔记 之 通过超链接动态加载国际化资源文件
- 31.Struts2_通过超链接动态加载国际化资源文件
- 35. Struts2_国际化&通过超链接动态加载国际化资源文件
- 32.Struts2_通过超链接动态加载国际化资源文件
- Sencha实现国际化,JS动态加载js、css文件
- 3.10.4: Struts2的国际化---加载资源文件的方式
- 3.10.1: Struts2的国际化---Struts2中加载全局资源文件
- Struts2中加载国际化资源文件的顺序
- 3.10.5: Struts2的国际化---加载资源文件的顺序
- 动态加载资源属性文件实现方案
- C#动态加载DLL,通过配置文件实现对程序集的即插即用
- 在Unity3D的网络游戏中实现资源动态加载
- C#实现反射调用动态加载的DLL文件中的方法
- struts2引用国际化资源文件
- Style样式的四种使用(包括用C#代码动态加载资源文件并设置样式)
- struts 中如何访问资源文件,JSP页面中如何实现国际化显示
- struts2国际化与资源文件
- 动态加载资源文件(ResourceDictionary)
- 在类库中调用资源文件实现国际化!