以前使用sitemesh2,如果用jsp做视图,页面设置了UTF-8,就没有中文乱码问题,但是使用html做视图就会有乱码。
最近换了sitemesh3,看官网的demo用的html做视图,结果自己使用的时候还是乱码,看源码里面是使用字符串截取到charset后面的8个字符作为编码,索性把源码里面直接改成UTF-8。涉及两个地方,SeteMeshFilter.java把response的charactorencoding设为utf-8,HttpContentType.java的encoding变量直接改为utf-8。然后编译打包,编译有一个巨大的坑!!。。。替换掉本地maven里面的相应jar包,重新导入工程即可解决乱码问题。
sitemesh2乱码也可以直接在SiteMeshFilter.java中直接给response设置charactorencoding设为utf-8即可。