0

「許可」オブジェクトのリストを表示するために、displaytag ライブラリを使用しています。アクセス許可オブジェクトには、ID、名前、値、および関連するアプリケーション ID が含まれています。「ユーザー グループ」を作成する場合、ユーザー グループの名前と説明を設定し、displaytag テーブルのリストをスクロールしてチェックボックスで必要な権限をチェックすることで、追加する権限を選択します。

ユーザーグループを「編集」するときに問題が発生します。作成ページで行うように、displaytag テーブルに使用可能なアクセス許可オブジェクトのリスト全体をロードしたいのですが、そのユーザーグループに既に存在するアクセス許可のチェックボックスの「選択された」値を設定できるようにする必要があります。

私の問題は、チェックボックスで選択した属性をどのように設定するかです。チェックボックスタグの選択された属性をオプションで設定できるdisplaytagライブラリには、ある種の「ロジック」機能がありますか?

以下は、UserGroup の「作成」のコードです。

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

したがって、更新ページの場合、「permissionList」入力データのプロパティに基づいて、チェックボックスの「選択済み」属性を設定するという考えになります。これは、更新される UserGroup に対して既に選択されている権限に従って設定します。

それがロックンロールにとって十分に明確だったことを願っています.

洞察を事前にありがとう:)

編集 - 申し訳ありませんが、チェックボックスの入力要素を事前選択する方法は、「チェック済み」属性を含めることだと思います。選択済み = 「選択済み」またはそのようなものだと思っていました。

4

1 に答える 1

1

これが私がそれを解決した方法です-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>
于 2010-10-15T18:07:04.643 に答える