簡體   English   中英

JSF / PrimeFaces-創建可重用數據表對話框的方法

[英]JSF/PrimeFaces - Approaches for creating reusable data table dialogs

我將JSF 2.0與Primefaces一起使用。 我有一個帶有數據表的頁面,該數據表包含系統中的用戶列表。 每個用戶可以有一個角色集合,所以我想有一個按鈕來選擇一堆角色。 我希望這是一個ajax選擇器,並且可以從其他頁面重復使用,所以這就是我的布局方式。

用戶列表頁面

<h:form prependId="false">
<p:dataTable id="userList" var="user" value="#{userBean.users}">
    <p:column id="modelHeader">
        <f:facet name="header">
                Name
        </f:facet>
        <h:outputText value="#{user.name}" />
    </p:column>

    <p:column>
        <f:facet name="header">
                Select Roles
        </f:facet>
       <p:commandButton id="selectButton" oncomplete="roleDialog.show()" icon="ui-icon-search" title="Select Roles" />               
    </p:column>

</p:dataTable>
</h:form>

在用戶列表頁面中定義的對話框,但內容將移至包含內容以提高可重用性

<p:dialog header="Roles" widgetVar="roleDialog" resizable="true" id="roleDialog" modal="true">

    <h:form prependId="false">
    <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">

    <p:dataTable id="roleList" var="user" value="#{roleBean.roles}">
    <p:column id="modelHeader">
        <f:facet name="header">
                Name
        </f:facet>
        <h:outputText value="#{role.name}" />
    </p:column>


    <p:commandButton id="selectButton" actionListener="#{roleBean.selectRoles}" title="Select Roles" />               


    </h:panelGrid>
    </h:form>
</p:dialog>

我的問題是,我不確定如何實現以下目標。

  • 我想在呈現對話框中的內容之前將參數作為標准傳遞給角色選擇器。我可以通過f:setPropertyActionListener ..這樣做嗎?
  • 選擇角色后,我想將所選ID傳遞回用戶列表頁面。 我可以通過addCallbackParam做到這一點,對嗎?
  • 然后,我想將該值傳遞回userList bean中的一個動作偵聽器中,以將該角色與用戶相關聯

在JSF中實現此工作流程的最佳模式是什么。 我不想在每個頁面中重復我的角色選擇器,因為我想重復使用它。 感謝您耐心閱讀這篇長文章。 感謝您的回應和建議。

最好的模式是實現一個復合組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM