作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将应用程序从 JSP 移植到 Thymeleaf。到目前为止,我已经找到了与我在 JSP 中所做的一切等效的东西,除了这个。我有一个与权限实体具有多对多关系的角色实体,这可能是一个非常典型的设置。在 JSP 中,我曾经能够编辑角色并将每个权限映射到一个复选框,如下所示:
<form:checkboxes element="li" items="${systemPermissions}" path="permissions" itemValue="id" itemLabel="name" id="systemPermissions"/>
这从模型中获取一个 List 对象,并通过相应地选中每个复选框来映射所有允许的权限。 super 简单, super 简洁,但不幸的是我没有找到用 Thymeleaf 来做到这一点的方法。
Thymeleaf 有没有办法动态创建复选框列表并将多对多关系映射到它?
谢谢!
最佳答案
这可以通过如下代码片段来完成(假设您将所有权限作为列表,将角色允许的权限作为模型中的映射):
<thbody>
<td>
<th:block th:each="p: ${AllPermissions}">
<input type="checkbox" name="perms" th:value="${p.id}"
th:checked="${#maps.containsKey(AllowedPermissionsForRole, p.id)}" /> <label th:text="${p.permissionsName}"></label>
</th:block>
</td>
</thbody>
顺便说一句,我将所有复选框放在一个表格单元格中,但您可以理解这个想法。我们只是迭代所有可用的权限,看看我们当前选择的角色的权限中是否有它。
关于java - Thymeleaf 多对多复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54969711/
我是一名优秀的程序员,十分优秀!