【问题标题】:Using path variable in Thymeleaf th:replace在 Thymeleaf th:replace 中使用路径变量
【发布时间】:2020-07-09 21:43:21
【问题描述】:

我在我的控制器中使用路径变量来换出 HTML 页面上的内容,以下对我来说很好,并且是我要去的溃败:

Controller:
@RequestMapping(path = "/p/{request}", method = {RequestMethod.GET})
public String index(@PathVariable("request") String request, Model model) {
    System.out.println(request);
    model.addAttribute("pageName", request);
    return "pages/index";
}

The div:
<div class="col-xs-10 dev-outline">
    <!-- begin content -->
    <div th:replace="fragments/page-content :: ${pageName}"></div>
</div>

这很好用,并且允许我拥有一个 html 文件 (fragments/page-content.html) 来保存我需要的所有数据。

然而,随着内容的增长,我不想要一个 2k 行的 html 文件来保存所有内容,而且为了便于维护,我希望每个页面内容都有一个文件。

我尝试了以下方法,发现它没有按我预期的方式工作:

<div class="col-xs-10 dev-outline">
    <!-- begin content -->
    <div th:replace="fragments/${pageName} :: content"></div>
</div>

我认为这可以让我创建新的 html 页面并用“内容”标记里面的 div,但是 Thymleaf 无法解析它。

我正在尝试做的事情可能吗?还是我想错了。

【问题讨论】:

    标签: java spring-boot thymeleaf


    【解决方案1】:

    想通了...我需要更换:

    <div th:replace="fragments/${pageName} :: content"></div>
    

    与:

    <div th:replace="${pageName} :: content"></div>
    

    只需在控制器中添加“fragments/”即可。

    【讨论】:

    • 作为参考,th:replace="'fragments/' + ${pageName} :: content" 也应该可以工作,使用带有连接的 Thymeleaf 字符串文字 (reference)。
    • 感谢参考!这真的很有帮助
    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2019-10-31
    • 2016-03-29
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多