Thymeleaf嵌套条件:with

时间:2015-12-02 15:17:45

标签: thymeleaf

我想做那样的傻瓜:

<div id="header_nav" th:fragment="header_nav (someId)" th:with="navPrefix=${'/content' + (someId ? ('/'+someId) : '')"}">

稍后将其用作div中的* {navPrefix}。我以某种方式不满足条件嵌套。 谁能帮我? 感谢名单!

2 个答案:

答案 0 :(得分:0)

我看到的唯一问题是末尾的额外双引号,并且当您传入String时,您的三元运算符不包含布尔表达式。

以下用于显示块中的前缀或传递的参数:

<div id="header_nav" 
    th:fragment="header_nav(someId)" 
    th:with="navPrefix = ${'/content' + (someId != null ? ('/' + someId) : '')} ">

        <div th:text="${someId}"></div>
        <div th:text="${navPrefix}"></div>
</div>

答案 1 :(得分:0)

我怀疑这是因为你在使用片段时正在使用th:include。根据{{​​3}} th:include,只需包含片段内容:

  

而th:include会将片段的内容包含在其主机标签中,th:replace实际上会用片段的

替换主机标签

如果您使用的是th:include,那么您的th:with将不会被收录,因此它将始终为空白。您可以使用与th:fragment声明相同的元素中的其他属性来观察此内容,例如style

您可以使用th:replace代替它,这将交换整个片段,而不仅仅是内容。或者,您可以使用th:block包装片段内容,您可以使用navPrefix来定义<div th:fragment="header_nav(someId)"> <th:block th:with="navPrefix = ${'/content' + (someId != null ? ('/' + someId) : '')} "> ... contents of fragment ... </th:block> </div>

rdd1.union(rdd2).groupByKey().mapValues(tuple).collect()