struts2 国际化 cookie保存语言, 下次访问时显示当前设置的语言
2009-10-28 11:49
337 查看
最近在看struts2的国际化, i18n拦截器代码很简单, 具体是根据访问参数和session方式来控制语言, 其实每次都更改语言还是很麻烦的, 特别做了一个Cookie保存当前语言设置, 仅仅一个例子供大家参考, 修改i18n的拦截器代码.
流程处理: 首先判断parameters里面有没有语言选择参数, 有则取出放到cookie, 如果没有则从cookie中取, 放到parameters, 这样就可以实现本地保存, 最终和i18n的拦截器互动, 即使以后struts改了, 我们也能灵活处理; 当然也可以完全从新实现i18n的拦截器功能, 但是那样我觉得后期如果struts i18n方式一变就有点被动.
代码如下:
package sh.mgr.ui.interceptor;
2
3import java.util.Locale;
4import java.util.Map;
5
6import javax.servlet.http.Cookie;
7import javax.servlet.http.HttpServletRequest;
8import javax.servlet.http.HttpServletResponse;
9
10import org.apache.struts2.ServletActionContext;
11
12
13import com.opensymphony.xwork2.ActionInvocation;
14import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
15import com.opensymphony.xwork2.interceptor.I18nInterceptor;
16import com.opensymphony.xwork2.util.LocalizedTextUtil;
17import com.opensymphony.xwork2.util.logging.Logger;
18import com.opensymphony.xwork2.util.logging.LoggerFactory;
19
20
<package name="myDefPkg" extends="struts-default" abstract="true">
2 <interceptors>
3 <interceptor name="i18nSh" class="sh.mgr.ui.interceptor.I18nSh"></interceptor>
4 <interceptor-stack name="myStack">
5 <interceptor-ref name="i18nSh"></interceptor-ref>
6 <interceptor-ref name="defaultStack"></interceptor-ref>
7 </interceptor-stack>
8 </interceptors>
9 <default-interceptor-ref name="myStack" />
10</package>
11<package name="account" extends="myDefPkg">
12 ..
13</package>
流程处理: 首先判断parameters里面有没有语言选择参数, 有则取出放到cookie, 如果没有则从cookie中取, 放到parameters, 这样就可以实现本地保存, 最终和i18n的拦截器互动, 即使以后struts改了, 我们也能灵活处理; 当然也可以完全从新实现i18n的拦截器功能, 但是那样我觉得后期如果struts i18n方式一变就有点被动.
代码如下:
package sh.mgr.ui.interceptor;
2
3import java.util.Locale;
4import java.util.Map;
5
6import javax.servlet.http.Cookie;
7import javax.servlet.http.HttpServletRequest;
8import javax.servlet.http.HttpServletResponse;
9
10import org.apache.struts2.ServletActionContext;
11
12
13import com.opensymphony.xwork2.ActionInvocation;
14import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
15import com.opensymphony.xwork2.interceptor.I18nInterceptor;
16import com.opensymphony.xwork2.util.LocalizedTextUtil;
17import com.opensymphony.xwork2.util.logging.Logger;
18import com.opensymphony.xwork2.util.logging.LoggerFactory;
19
20
<package name="myDefPkg" extends="struts-default" abstract="true">
2 <interceptors>
3 <interceptor name="i18nSh" class="sh.mgr.ui.interceptor.I18nSh"></interceptor>
4 <interceptor-stack name="myStack">
5 <interceptor-ref name="i18nSh"></interceptor-ref>
6 <interceptor-ref name="defaultStack"></interceptor-ref>
7 </interceptor-stack>
8 </interceptors>
9 <default-interceptor-ref name="myStack" />
10</package>
11<package name="account" extends="myDefPkg">
12 ..
13</package>
相关文章推荐
- QT国际化示例, 检测系统语言,设置适合语言,按键切换显示语言
- JS Cookie怎样设置当天有效?在Cookie保存用户访问过的页面?
- struts2国际化设置浏览器语言
- QT国际化示例, 检测系统语言,设置适合语言,按键切换显示语言
- 如何清除Session/设置Session超时, 如何显示当前的访问人数和总访问量.
- 扩展bootstrap-table插件,使其在设置显示/隐藏列时,将设置保存至cookie或者服务器端
- 利用Cookie保存数据,在浏览器页面显示用户上次访问时间
- 转自彪哥:Android 史上最强多语言国际化,不仅第一次会跟随系统,而且会保存用户的语言设置
- [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言
- Android 史上最强多语言国际化,不仅第一次会跟随系统,而且会保存用户的语言设置
- 拍照界面显示的语言设置
- Aspose.word保存PDF时进行授权访问设置
- struts2使用拦截器完成登陆显示用户信息操作和Struts2的国际化
- Web框架——Struts2国际化实现用户自行选择语言
- 设置显示当前音乐播放的时间
- 360浏览器设置语言国际化
- 程序中得到当前的界面语言设置
- 请教求助,打开U盘显示,你当前无权访问该文件夹。
- 【Cookie:默认存储在浏览器的内存中】显示上一次访问时间、商品浏览记录
- MATLAB和VS混合编程,调试C程序设置的断点显示“当前不会命中断点 还没有为该文档加载任何符号”