blc 标签中的 Thymeleaf th 标签

Thymeleaf th tag in blc tag

我的问题如下: 在这段代码中

    <header>
        <h1 th:utext="${BLC_PAGE.pageFields[menu_name]}"></h1>
    </header>

    <blc:menu resultVar="menuItems" menuName="${BLC_PAGE.pageFields[menu_name]}" />
    <ul th:if="${not #lists.isEmpty(menuItems)}">
        <li th:each="menuItem : ${menuItems}">

            <a th:href="@{${menuItem.url}}" th:class="${menuItemStat.first}? 'home'">
                <span th:utext="${menuItem.label}"></span>
            </a>

        </li>
    </ul>

<h1 th:utext="${BLC_PAGE.pageFields[menu_name]}"></h1>获取实际菜单的名称。我需要这一行中的 menuName <blc:menu resultVar="menuItems" menuName="${BLC_PAGE.pageFields[menu_name]}" /> 来做同样的事情,但是 "${BLC_PAGE.pageFields[menu_name]}" 不合适,因为它来自 thymeleaf 标签库。知道如何在 blc:menu 标签中获得这个值吗?

为了解析 Thymeleaf 表达式 ${BLC_PAGE.pageFields[menu_name]},您需要像这样包装它:th:attr="menuName=${BLC_PAGE.pageFields[menu_name]}"。因为 menuName 不是标准的 HTML 属性,您将无法简单地将 Thymeleaf 命名空间添加到 menuName(即 th:menuName),并且,如果没有 th: 命名空间,Thymeleaf 不会'知道它需要解析任何表达式。 Thymeleaf attr 属性允许您将非标准 HTML 属性与 Thymeleaf 一起使用。有关使用 Thymeleaf 设置属性值的更多信息,您可以查看 their documentation.

以下是有关处理器和方言的 Broadleaf 和 Thymeleaf 文档的链接: