我已经认识到某些表出现在我的应用程序中的很多地方,并且我试图将它们打包为组合。这是我提出的摘录:
<p:dataTable var="permission" value="#{permissionList}"
id="permissionTable">
<p:column headerText="Edit" rendered="#{showEdit}" style="width:50px">
<p:rowEditor />
<p:commandLink action="#{removeAction}" update="permissionTable">
<span class="ui-icon ui-icon-close" />
</p:commandLink>
</p:column>
</p:dataTable>
目前有三个参数:
permissionList
是表格内容showEdit
打开和关闭所有地方都不可行的内联编辑选项。removeAction
因为删除权限可能意味着将其从角色,主题中删除或删除它,具体取决于上下文。包含permissionTable现在看起来像这样:
<ui:include src="compositions/permissionTable.xhtml">
<ui:param name="permissionList"
value="#{permissionRoleDetailBean.role.permissions}" />
<ui:param name="showEdit" value="#{true}" />
<ui:param name="removeAction"
value="#{permissionRoleDetailBean.removePermission(permission)}" />
</ui:include>
遗憾的是,removeAction
参数存在问题。无论我传入的是什么,似乎都包括在内。我确实认识到使用上下文参数名称(permission
)可能类似于乞求麻烦。
那我怎么可能
答案 0 :(得分:1)
我想象过这样的事情:
permissionTable.xhtml(放入JSF的资源文件夹)
<html
namespaces go here>
<cc:interface></cc:interface>
<cc:implementation>
<p:dataTable var="permission" value="#{permissionRoleDetailBean.role.permissions}" id="permissionTable">
<p:column headerText="Edit" rendered="#{cc.attrs.rendered}" style="width:50px">
<p:rowEditor />
<p:commandLink action="#{permissionRoleDetailBean.removePermission(permission)}" update="permissionTable">
<span class="ui-icon ui-icon-close" />
</p:commandLink>
</p:column>
</p:dataTable>
</cc:implementation>
页面使用
<myComp:permissionTable rendered="#{showEdit}" />