参数化合成的动作

时间:2012-02-02 16:45:55

标签: jsf jsf-2 primefaces

我已经认识到某些表出现在我的应用程序中的很多地方,并且我试图将它们打包为组合。这是我提出的摘录:

<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)可能类似于乞求麻烦。

那我怎么可能

  • 让我的方法在上面工作?
  • 为作曲正确实施行动?我不知何故怀疑我遗漏了一些基本的东西。

1 个答案:

答案 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}" />