好。简单(?)问题的复杂标题。
我有类似的事情(我尽可能简单地说明这一点)
<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>
由于与数据表相关的两个原因,它无效并且我正在假设:
EL "#{testVar.var2 != false }"
应该有更好的实例指标。
reRender="TestingID"
应该正在检索inputText的正确实例。
所以我的问题是如何正确地做到这一点?
感谢!!!
答案 0 :(得分:2)
根据doc,reRender
采用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)。