今天用到了sitemesh,恩,装饰模式还是很棒的 上手也很快 感觉上比tiltes要好用
但是遇到一个小问题:html中文乱码
当然除了对JSP的乱码解决方案外
网上就有如是说
///
静态html在sitemesh中乱码的解决方法。
前提条件:sitemesh的decorator的编码全部用UTF-8,使用SetCharacterEncodingFilter把request的encoding也
设置成UTF-8
问题1、decorator中的内容出现乱码。
原因:
解决方法:改进SetCharacterEncodingFilter,使它对response也设置encoding为UTF-8
问题2、被修饰的html内容出现乱码。
原因:sitemesh根据html的contenttype(例如:text/html;charset=utf-8)来决定html文件的encoding,
如果contenttype是像(text/html)这样的形式,sitemesh就无法知道html的encoding,这时sitemesh就
使用DEFAULT_ENCODING即System.getProperty("file.encoding"),在jetty中正是后面那样,估计tomcat也是这样。
解决方法:使html的encoding和System.getProperty("file.encoding")相同。
1、启动jetty时将java系统变量file.encoding设置为UTF-8,html的编码也用UTF-8.(推荐)
//
唉 我可以不愿来改服务器的编码,所以简单解决方案 html后缀名直接改jsp
OK了
原地址: http://zhudengchao.javaeye.com/blog/258228