码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2的国际化(二)-利用超链接实现动态加载国际化资源文件

时间:2014-08-21 22:46:44      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   io   strong   文件   

原理:程序是根据Locale来确定国际化资源文件,因此关键之处在于知道 Struts2 框架是如何确定 Local 对象的 !

由于Struts2 使用 i18n 拦截器处理国际化,并且将其注册在默认的拦截器中,因此,可以通过阅读 I18N 拦截器知道。

具体确定 Locale 对象的过程:

> Struts2 使用 i18n 拦截器 处理国际化,并且将其注册在默认的拦截器栈中

> i18n拦截器在执行Action方法前,自动查找请求中一个名为 request_locale 的参数。

 如果该参数存在,拦截器就将其作为参数,转换成Locale对象,并将其设为用户默认的Locale(代表国家/语言环境)。
 并把其设置为 session 的 WW_TRANS_I18N_LOCALE 属性

> 若 request 没有名为request_locale 的参数,则 i18n 拦截器会从 Session 中获取 WW_TRANS_I18N_LOCALE 的属性值,
 若该值不为空,则将该属性值设置为浏览者的默认Locale

> 若 session 中的 WW_TRANS_I18N_LOCALE 的属性值为空,则从 ActionContext 中获取 Locale 对象。

流程图如下图所示:

bubuko.com,布布扣

 

具体实现: 只需要在超连接的后面附着 request_locale 的请求参数, 值是 语言国家 代码.

<a href="testI18n.action?request_locale=en_US">English</a>
<a href="testI18n.action?request_locale=zh_CN">中文</a>

> 注意: 超链接必须是一个 Struts2 的请求(经过Action执行), 即使 i18n 拦截器工作!

Struts2的国际化(二)-利用超链接实现动态加载国际化资源文件,布布扣,bubuko.com

Struts2的国际化(二)-利用超链接实现动态加载国际化资源文件

标签:style   blog   http   color   使用   io   strong   文件   

原文地址:http://www.cnblogs.com/KnightKitt/p/3928181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!