17.5 解耦的逻辑的解析

Thymeleaf解析解耦的逻辑资源的方式由用户配置。 它取决于扩展点——org.thymeleaf.templateparser.markup.decoupled.IDecoupledTemplateLogicResolver。还有一个默认的实现:StandardDecoupledTemplateLogicResolver

这个标准的实现做了什么呢?

  • 首先,它对模板资源的基本名称应用前缀后缀(通过ITemplateResource#getBaseName()方法)。前缀和后缀都可以配置。默认的,前缀将会为空,而后缀会是.th.xml
  • 其次,它通过ITemplateResource#relative(String relativeLocation)方法,用计算出的名称,请求模版资源解析相对的资源。

IDecoupledTemplateLogicResolver的特定实现可以很容易地在TemplateEngine里配置:

  1. final StandardDecoupledTemplateLogicResolver decoupledresolver =
  2. new StandardDecoupledTemplateLogicResolver();
  3. decoupledResolver.setPrefix("../viewlogic/");
  4. ...
  5. templateEngine.setDecoupledTemplateLogicResolver(decoupledResolver);