Список флажков "многие ко многим" - PullRequest
0 голосов
/ 03 марта 2019

Я портирую приложение из JSP в Thymeleaf.До сих пор я нашел эквивалент всему, что я делал в JSP, КРОМЕ этого.У меня есть ролевая сущность, которая имеет отношение «многие ко многим» с сущностью разрешений, вероятно, очень типичная установка.В JSP я имел обыкновение редактировать роль и сопоставлять каждое разрешение с флажком, например:

<form:checkboxes element="li" items="${systemPermissions}" path="permissions" itemValue="id" itemLabel="name" id="systemPermissions"/>

Это берет объект List из модели и сопоставляет все разрешенные разрешения, устанавливая соответствующие флажки каждый,Супер просто, супер лаконично, но, к сожалению, я не нахожу способ сделать это с помощью Thymeleaf.

Есть ли способ с Thymeleaf динамически создать список флажков и отобразить отношение многих ко многим?

Спасибо!

1 Ответ

0 голосов
/ 05 марта 2019

Это можно сделать с помощью сниппета, подобного следующему (при условии, что вы поместили все разрешения в качестве списка и разрешенные разрешения для роли в качестве карты в модели):

<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>

Кстати, здесьЯ поставил все флажки в ячейке таблицы, но вы можете понять идею.Мы просто перебираем все доступные разрешения, чтобы узнать, есть ли они в разрешениях нашей выбранной роли или нет.

...