在EL中引用h:datatable迭代变量的特定实例

时间:2011-01-16 10:05:23

标签: jsp jsf

好。简单(?)问题的复杂标题。

我有类似的事情(我尽可能简单地说明这一点)

<h:dataTable var="testVar" value="#{bean.VariablesArray}">
<h:inputText id="TestingID" 
             styleClass="propertyInput" 
             value="#{testVar.var1}"
         disabled="#{testVar.var2 != false }" 
             readonly="#{testVar.var2 != false }" />
<h:selectBooleanCheckbox 
             value="#{testVar.var2}">
         <a4j:support event="onclick" reRender="TestingID" />
</h:dataTable>

由于与数据表相关的两个原因,它无效并且我正在假设:

  1. EL "#{testVar.var2 != false }"应该有更好的实例指标。

  2. reRender="TestingID"应该正在检索inputText的正确实例。

  3. 所以我的问题是如何正确地做到这一点?

    感谢!!!

1 个答案:

答案 0 :(得分:2)

根据docreRender采用UIComponent.findComponent(String)使用的格式(即使用client identifier而不是component identifier)。< / p>

有几种方法可以获得这个值(支持bean,静态函数和/或组件绑定的组合),但你最终会得到这样的结果:

<h:inputText id="TestingID" styleClass="propertyInput" 
             value="#{testVar.var1}" disabled="#{testVar.var2 != false }" 
             readonly="#{testVar.var2 != false }"

             binding="#{someReqScopeMap.TestingID}" />

<h:selectBooleanCheckbox value="#{testVar.var2}">
  <a4j:support event="onclick"
             reRender="#{myfn:cid(someReqScopeMap.TestingID)}" />

有关详细信息和示例代码,请参阅JSF: working with component identifiers (id/clientId)