gpt4 book ai didi

java - Thymeleaf 没有看到来自 Spring 的对象

转载 作者:行者123 更新时间:2023-12-01 11:59:46 24 4
gpt4 key购买 nike

我的模板看不到从 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);

}

}

Controller 的代码:

@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("pageTitle", "TITLE!!!!!!!!!!!!!!");
publicModelAndView.addObject("ourServices", ourServicesBean.getMenu());
publicModelAndView.addObject("portfolioWorkTypes", portfolioBean.getWorkTypes());
publicModelAndView.addObject("portfolioWorks", portfolioBean.getWorks());

return publicModelAndView;

}

}

主模板代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
>
<head th:include="headerAndFooter/fragments/header :: publicSiteHeader">
<title></title>
</head>
<body>
hello!
</body>

</html>

片段的代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">

<head th:fragment="publicSiteHeader">

<title>${pageTitle}</title>

<!--[if lte IE 8]>
<script src="<?= SITE_TEMPLATE_PATH ?>/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>

</body>
</html>

因此,我没有看到对象 pageTitle 的值,但我在页面输出代码中看到,如

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>${pageTitle}</title>

为什么 thymeleaf 没有将 pageTitle 的值粘贴到标题标签的打开和关闭之间?

相同的代码适用于 JSP,但不适用于 thymeleaf。

最佳答案

Thymeleaf 不是 JSP,因此您的模板无法按预期工作。

看这里http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#using-texts并使用类似的东西:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">

<title th:text="#{pageTitle}">page title</title>

已编辑 - 我的解决方案适用于本地化文本,无论如何这是一个很好的做法。如果你想使用变量的内容而不是使用 $。

关于java - Thymeleaf 没有看到来自 Spring 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28066090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com