hyv 2017-08-12
session过期之后,页面跳转到sessiontimeout的画面里去了。因为session的值已经无法获取,所以显示的语言i18n用的是strtus.xml里默认设置的<constant name="struts.locale" value="zh_CN" />。但是如果在英文环境下,sessiontimeout的错误信息还是显示的中文,立马想到改成<constant name="struts.locale" value="en_US" />。的确,sessiontimeout的错误信息显示的是英文了,但是产生了另外的一个问题。
就是js加载的中文变成了乱码,
比较了一下struts.locale的两个参数值。
当zh_CN的时候,
http标头:
Content-Language: zh-hans-CN
Content-Type: application/javascript;
en_US的时候,js加载竟然会自动加上charset=ISO-8859-1
Content-Language: en-US
Content-Type: application/javascript; charset=ISO-8859-1
然后我把所有JavaScript引用的地方都加上了charset=‘UTF-8’也还是没有作用。
<script src="/js/message.js" type="text/javascript" charset="UTF-8"></script>
不知道为什么原因。暂时保留。