Jsf 在为支持bean设置值时,bean名称可以是变量吗

Jsf 在为支持bean设置值时,bean名称可以是变量吗,jsf,jsf-2,primefaces,uiinclude,setpropertyactionlistener,Jsf,Jsf 2,Primefaces,Uiinclude,Setpropertyactionlistener,在设置参数时,是否有一种方法可以使用变量来定义支持bean。在我们的应用程序中,我们允许对表中的大多数列(如果不是所有列的话)使用多个筛选条件。我们已经开发了一段代码,它被复制到实现此功能的每个列定义中。列定义示例: <p:column styleClass="dataTableColumnAlignLeft" id="c0" style="width: 200px" exportable="false"> <ui:include src="/html/common

在设置参数时,是否有一种方法可以使用变量来定义支持bean。在我们的应用程序中,我们允许对表中的大多数列(如果不是所有列的话)使用多个筛选条件。我们已经开发了一段代码,它被复制到实现此功能的每个列定义中。列定义示例:

<p:column styleClass="dataTableColumnAlignLeft" id="c0"
   style="width: 200px" exportable="false">
   <ui:include src="/html/common/dataTableColumnHeader5_2.xhtml">
      <ui:param name="programId" value="backingBeanName" />
      <ui:param name="fieldName" value="depositName" />
      <ui:param name="displayLessThanFilter" value="false" />
      <... several more ui:include parameters />
   </ui:include>
   <h:outputText value="#{cashReceiptsDeposList.depositName}" />
</p:column>
包含的代码构建列标题,并具有命令按钮来对列进行排序和显示用户帮助文本,所有这些都可以正常工作。但它还包含一个命令按钮,该按钮执行一个对话框,以从用户处获取每列的多个过滤参数。这在PF 3.2中运行良好,但在转换为5.2时,它停止了工作。在查看文档时,我发现对话框不应该包含在表定义中,因此我们试图将对话框移到表定义之外。但是,这意味着为ui:include引入的代码设置的参数对对话框不可见。我可以通过以下方法设置特定于过滤到支持bean中的列的参数来克服这一问题:

<p:commandLink tabindex="-1" rendered="#{displayFilters}"
   update=":filterDialogForm:filterDialog"
   oncomplete="PF('filterDialog').show();" id="#{fieldName}FPL"
   title="#{label}">
   <f:setPropertyActionListener target="#{backingBeanName.label}" value="#{label}" />
   <f:setPropertyActionListener target="#{backingBeanName.fieldName}" value="#{fieldName}" />
   <f:setPropertyActionListener target="#{backingBeanName.displayContainsFilter}" value="#{displayContainsFilter}" />
   <p:graphicImage rendered="#{displayFilters}" tabindex="-1"
      style="border:0px;" width="20" height="20"
      value='#{empty filtersHandler..../>
</p:commandLink>
然后,该对话框可以提取这些支持bean元素的内容,以便知道要请求哪些过滤器。如果我可以将bean名称指定为一个变量,那么我只需要复制的片段的一个副本,但是如果我必须输入实际的bean名称,那么对于每个有表的页面,我需要一个副本,目前超过1000个。我尝试了几种使用变量的方法,比如target={{programmaid}.field},但到目前为止,它们要么都无法解析,要么被解释为静态bean名称,而不是变量。可以用变量指定bean名称吗


环境:PF 5.2、jBoss 7.1.3、jdk-7、jsf 2.2

不,不是。但是你总是可以使用一个bean,它包含一个hashmap对象,我对hashmap表做的很少,但是如果我理解你的建议,我不需要为每个页面使用一个bean和一个表,包含表中每个列的映射及其参数,还是应用程序中每个表和列都有参数的单个bean?