итерация одновременно по двум спискам с использованием тимелина - PullRequest
0 голосов
/ 30 января 2019
<div class="form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12">Roles
        <span class="required">*</span>
    </label>
    <thbody>
        <td><th:block th:each="myRoles : ${MyRoles}">
            <input type="checkbox" name="roles"
                th:value="${myRoles .id}" checked />
            <label th:text="${myRoles .roleName}"></label>
        </th:block>--</td>
    </thbody>

В данный момент он показывает мне только один список (текущие роли), я хочу показать все роли, которые связаны в объекте $ {AllRoles} и проверил только те роли, которые в данный момент назначеныконкретного пользователя.

Я пытаюсь сохранить роли в наборе в моем контроллере:

Set<UserRole> myRolesSet;
myRolesSet= myusr.getRoles();

Вот как я пытаюсь сделать в представлении:

<thbody >
        <td><th:block th:each="allRoles : ${allrole}">
        <input  type="checkbox" name="roles" th:value="${allRoles.id}"
        th:checked="${#sets.contains(myRolesSet,allRoles.id)}? 'checked' " />
        <label th:text="${allRoles.roleName}"></label>
        </th:block></td>
</thbody>

1 Ответ

0 голосов
/ 30 января 2019

Вы должны сделать это, как в следующем примере кода:

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

HashMap<Integer, Role> myRolesMap = new HashMap<Integer, Role>();

В этом случае я предполагаю, что вы используете целочисленный ключ для своей хэш-карты.

Во-вторых, вам нужно перебрать список AllRoles и решить, есть ли у пользователятекущую итерированную роль, тогда вы должны поставить галочку.

    <thbody>
        <td><th:block th:each="role: ${AllRoles}">
            <input type="checkbox" name="roles"
                th:value="${role.id}" th:checked="${#maps.containsKey(myRolesMap, role.id)}" />
            <label th:text="${role.roleName}"></label>
        </th:block>--</td>
    </thbody>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...