如何从Thymeleaf调用对象的方法?

我的模板看不到从Spring传递的对象。

我的代码:

public class PublicModelAndView extends ModelAndView { @Autowired TemplateModulesHandler templateModulesHandler; public void init() { setViewName("index"); CSSProcessor cSSProcessor = new CSSProcessor(); cSSProcessor.setSiteRegion("public"); super.addObject("CSSProcessor", cSSProcessor); JSProcessor jSProcessor = new JSProcessor(); super.addObject("JSProcessor", jSProcessor); templateModulesHandler.setPublicModelAndView(this); } } 

控制器的代码:

 @SpringBootApplication @Controller public class IndexPage { @Autowired PublicModelAndView publicModelAndView; @Autowired OurServicesBean ourServicesBean; @Autowired PortfolioBean portfolioBean; @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView indexPage() { publicModelAndView.setTemplate("publicSiteIndexPage"); publicModelAndView.addObject("ourServices", ourServicesBean.getMenu()); publicModelAndView.addObject("portfolioWorkTypes", portfolioBean.getWorkTypes()); publicModelAndView.addObject("portfolioWorks", portfolioBean.getWorks()); return publicModelAndView; } } 

主模板的代码:

       hello!   

片段的代码:

    SOME TITLE ${CSSProcessor.setDebugCaller("Public")} ${CSSProcessor.setSiteRegion("public")} ${CSSProcessor.addCSS("/css/main.css")}     

结果我看到方法调用的代码,比如

   SOME TITLE ${CSSProcessor.setDebugCaller("Public")} ${CSSProcessor.setSiteRegion("public")} ${CSSProcessor.addCSS("/css/main.css")} 

为什么百里香叶没有调用方法,而是在输出页面打印这个文本? 在例子中来自http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html方法调用具有相同的语法,如

 ${person.createCompleteName()} 

相同的代码适用于JSP,但不适用于百万美元。

这可以通过两种方式在Thymeleaf中完成:

首先是使用特殊的Thymeleaf:

  SOME TITLE     

第二种方式是:

  SOME TITLE [["${CSSProcessor.setDebugCaller("Public")}"]] [["${CSSProcessor.setSiteRegion("public")}"]] [["${CSSProcessor.addCSS("/css/main.css")}"]]  

对于自然模板处理,第二选项是更优选的。 有关内联的更多信息,请访问: http : //www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#inlining

你可以通过百里香调用方法,但这不是一个好习惯。 百万美元与JSP有着不同的理念 – 它尝试使用有效的HTML模板。 并且在JSP中调用方法是最好的也不是好的做法。 但我不是你的判断,所以要调用方法使用不可见的span或div,尝试类似:

  

Thymeleaf不像JSP那样工作。 它的工作原理是使用前缀为“th:”的新属性扩展现有的HTML元素。 并且您可以仅在这些额外属性中引用变量(因此对它们调用方法)。

例如,

将适用于百里香

${contentOfTheParagraph}"

不会。