使用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.工作流程图:
二,实现
在超链接后面加上: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>