Thymeleaf-是否有一种简单的方法可以根据情况进行广播检查

时间:2020-03-30 14:31:26

标签: spring-boot thymeleaf

我正在使用Spring Boot + thymeleaf,并尝试使用最少的代码创建复选框列表。 复选框显示所有用户角色(USER,ADMIN),并且必须检查用户是否具有这种角色。

因此,起初,我试图使它像这样:

<p>
    <input th:type="radio" th:value="${role}"
          th:checked="${user.getRoles().contains(role)} ? 'checked' : 'unchecked'" />
    <th:block th:utext="${role}"/>
</p>

但这没用。

然后我做到了:

<th:block th:each="role : ${userRoles}">
    <p>
        <th:block th:if="${user.getRoles().contains(role)}">
            <input th:type="radio" checked />
        </th:block>
        <th:block th:if="${!user.getRoles().contains(role)}">
            <input th:type="radio"/>
        </th:block>
        <th:block th:utext="${role}"/>
    </p>
</th:block>

这是可行的,但是有没有像我第一次尝试那样的简单方法? 谢谢!

1 个答案:

答案 0 :(得分:1)

无线电类型的<input>元素支持公共属性checked。这是布尔属性,它接受truefalse作为可能的值。表示您的Thymeleaf条件可以直接放入此属性的值中,如下所示...

<p>
    <input th:type="radio" th:value="${role}"
      th:checked="${user.getRoles().contains(role)}" />
    <th:block th:utext="${role}"/>
</p>

有关Thymeleaf Fixed-value boolean attributes

的更多信息
相关问题