首页 > 解决方案 > 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>

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

标签: spring-bootthymeleaf

解决方案


radio 类型的<input>元素支持 common 属性checked。这是接受truefalse作为可能值的布尔属性。说你的 Thymeleaf 条件可以直接放入这个属性的值中,如下...

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

更多关于 Thymeleaf固定值布尔属性


推荐阅读