项目里有切换语种的功能,流程是点语言按钮之后,进入一个Action修改Session里的语种值session.setAttribute("NLS", "zh");以及加一个语种cookie,然后重定向到跟url;response.sendRedirect(request.getContextPath()+ "/");发送这个请求进去另一个Acion的时候就会根据之前存的语言值(先找Session里的,如果没有就找cookie里的),改变struts的国际化常量Session里Globals.LOCALE_KEY,就完成语言转化了。
----------------------------------------------------------------
现在的问题是,有的机器,有的浏览器就能顺利完成转化,有的就不行点击之后页面刷新了但还是原来的语言。用F5刷新下才会改变。我用httpwatch发现重定向那个url并没真正发送请求,而是用的本地缓存,用F5就不会使用缓存,发送请求了。
修改就用一句话,让每次那个重定向的url不一样就ok,这样浏览器就不知道这个url资源是之前有过的了,每次都发请求了。
response.sendRedirect(request.getContextPath() + "/?time="+ System.currentTimeMillis());