前提
struts2.3升级到2.5后,界面出现乱码,不论是html还是js中文均乱码。
struts2.5版本,F12可以看到
但在struts2.3版本显示的是
在web.xml文件中明明设置了编码格式
但貌似在struts2.5版本中不生效
解决方法
1、html加上<meta charset="UTF-8" />
,js也加上<script src="pages/js/XXX.js" charset="UTF-8"></script>
但工作量巨大,每个界面都得加
2、打开CharacterEncodingFilter源码
发现如果按咱们初始化的encoding值进行设置,必须满足条件this.forceEncoding && responseSetCharacterEncodingAvailable,但是在类的开头就定义了forceEncoding=false,所以最后response是不会按照咱们设置的utf-8进行显示的
所以咱们在初始化参数时,就要让forceEncoding=true即可解决问题