библиотека displaytag и выбранные значения флажков - PullRequest
0 голосов
/ 14 октября 2010

Я использую библиотеку displaytag для отображения списка «разрешенных» объектов. Объект разрешения содержит идентификатор, имя, значение и связанный идентификатор приложения. При создании «группы пользователей» задается имя группы пользователей, описание и выбираются разрешения, добавляемые в нее, путем прокрутки списка в таблице displaytag и проверки требуемых разрешений с помощью флажка.

Проблема возникает, когда я иду «редактировать» группу пользователей. Я хочу загрузить таблицу displaytag со всем списком доступных объектов разрешений, как я делаю на странице создания, но мне нужно иметь возможность установить «выбранное» значение флажка для разрешений, которые уже существуют для этой группы пользователей.

Моя проблема заключается в том, как установить выбранный атрибут в флажке. Есть ли какая-то "логическая" функциональность для библиотеки displaytag, где я могу дополнительно установить выбранный атрибут тега флажка?

Ниже приведен код для «создания» группы пользователей:

<display:table class="dataTable" defaultsort="1" name="userGroupForm.permissionList" id="tbldata" requestURI="/createUserGroup.do" pagesize="100">
    <display:setProperty name="paging.banner.onepage" value=""></display:setProperty>
    <display:column class="alignCenter" title=""><input type="checkbox" name="permIDs" value='<%=((Permission)pageContext.getAttribute("tbldata")).getPermissionCodeID() %>' /></display:column>
    <display:column class="alignLeft" property="permName" titleKey="label.name" sortable="true" />
    <display:column class="alignLeft" property="permValue" titleKey="label.value" sortable="true" />
    <display:column class="alignLeft" property="applicationName" titleKey="label.appname" sortable="true" />
</display:table>

Таким образом, идея для страницы обновления состоит в том, чтобы установить атрибут «selected» флажка на основе некоторого свойства входных данных «allowList», которые я буду устанавливать в соответствии с тем, какие разрешения уже были выбраны для группы UserGroup. обновлен.

Надеюсь, это было достаточно ясно для рок-н-ролла.

Заранее спасибо за любые идеи:)

РЕДАКТИРОВАТЬ - я извиняюсь, я полагаю, что способ предварительно выбрать элемент ввода флажок состоит в том, чтобы включить атрибут «флажок», я думал, что он был выбран = «выбран» или что-то в этом роде.

1 Ответ

1 голос
/ 15 октября 2010

Вот как я решил это - я поместил атрибут в ListObject, чтобы установить, был ли он выбран или нет, и предварительно установил эти значения в действии перед отображением списка разрешений:

            <display:table class="dataTable" defaultsort="1" name="userGroupForm.permissionList" id="tbldata" requestURI="/gotoUpdateUserGroup.do" pagesize="100">
                <display:setProperty name="paging.banner.onepage" value=""></display:setProperty>
                <% if (isAdmin == true) { %>
                <display:column class="alignCenter" title="">
                <input type="checkbox" name="permIDs" 
                       value='<%=((Permission)pageContext.getAttribute("tbldata")).getPermissionCodeID() %>' 

                       <%                            
                       String checked = "";
                       boolean selected = ((Permission)pageContext.getAttribute("tbldata")).getIsSelected();

                       if (selected == true) { checked = "checked"; } else { checked = ""; }
                       %>

                       <%= checked %> />
                </display:column>
                <% } %>
                <display:column class="alignLeft" property="permName" titleKey="label.name" sortable="true" />
                <display:column class="alignLeft" property="permValue" titleKey="label.value" sortable="true" />
                <display:column class="alignLeft" property="applicationName" titleKey="label.appname" sortable="true" />
            </display:table>
...