thymeleaf和spring集成

ThymeLeaf模板 ginotang 1065℃ 0评论

thymeleaf集成spring

除了thymeleaf和spring的主要依赖外,还需要导入多几个包文件,它是thymealeaf-spring4、unbescape和attoparser。

在集成Spring的时候,thymeleaf的核心类基本上都有新的替代,分别是:

  • SpringTemplateEngine替代TempalteEngine
  • SpringResourceTemplateResolver替代ServletContextTemplateResolver

另外由于SpringMVC使用的ViewResolver解析模板,而不是TemplateResolver,因此还需要多配置一个ThymeleafViewResolver。实际上ThymeleafViewResolver底层是通过TempalteResolver解析模板的。

applicationContext配置文件

在spring中使用国际化

thymeleaf默认使用StandardMessageResolver进行国际化,但和spring集成之后,这些工作交由spring接管,在spring中,通常使用的类是ResourceBundleMessageSource,它是MessageSource接口的其中一个实现。

属性basename用来设置message文件的名字,例如messages_zh_CN.properties,它的basename就是messages。

虽然国际化类使用了Spring的dialet,但是模板文件依然可以使用Thymeleaf提供的操作符#{}

中文乱码问题

当出现中文乱码的时候,网上的资料都说设置TempalteResolver和ViewResolver的characterEncoding值为utf-8就可以解决问题,但在测试过程中发现是不行的(有可能是版本不同),即使添加了CharacterEncodingFilter过滤器依然是乱码。经过多次测试,设置编码的地方有两个,它们是ThymeleafViewResolver和ResourceBundleMessageSource,前者的characterEncoding属性值设置为UTF-8,后者的defaultEncoding属性值同样设置为UTF-8,这样中文就不会乱码。

applicationContext.xml代码

 

转载请注明:Pure nonsense » thymeleaf和spring集成

喜欢 (1)
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x