我正在使用带有Primefaces的JSF 2.0。我有一个页面,其中包含一个数据表,其中包含系统中的用户列表。每个用户都可以拥有一组角色,所以我想有一个按钮来选择一堆角色。我希望这是一个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>
我的问题是,我不确定如何实现以下目标。
在JSF中实现此工作流程的最佳模式是什么。我不想在每个页面中复制我的角色选择器,因为我想重新使用它。 感谢您耐心阅读这篇长篇文章。我感谢您的回复 建议。