最近公司换了Cuba这个orm框架,框架中使用了thymeteaf模板技术,发现在html中解析汉字一直是乱码的存在
一直以为是tomcat的问题但是tomcat的server.xml,项目中的web.xml配置包括html都设置的是utf-8编码,还是不行
于是就想到了是不是thymeleaf这个框架的问题
网上查了下这个框架确实存在中文乱码的问题
自己搭了一套thymeleaf与spring的集成,参照 水手009 的博客 ,确实可以解决thymeleaf中文乱码的问题
但是回到cuba项目无效,页面显示依旧是乱码
于是想到了是不是这个bean在cuba自己的jar中已经定义,我没有覆盖掉
搜索SpringResourceTemplateResolver这个类发现在jar中确实在cuba-protal-dispatcher-spring.xml(请记着这个文件)存在,而且很坑爹的是发现了freeMark模板设置了utf-8,而thymeleaf没有,WTF!!!
那么问题就很简单了,就是如何覆盖这3个Bean的配置,把咱们自己的编码换上
cuba关于xml引用是的通过xxx.properties中配置的,如下,那么我们就找到cuba是通过那个key引用的上面那个cuba-protal-dispatcher-spring.xml文件的
经查找是cuba.dispatcherSpringContextConfig这个key,那么问题就很简单了。
我们在自己protal项目的配置文件配置上自己的xml,并且在xml中覆盖原生的bean即可完美解决问题