2

我需要从 jsf 中的另一个表单更新一个表单内容。如果我给另一个表单 id,它会显示一个错误,比如找不到组件 id。

我的编码是

<h:form id="form1" name="form1">
 <h:commandLink value="Tab1" id="Tab1">
  <f:ajax listener="#{managedBean.tabChange}" event="click" render="form2"></f:ajax>
 </h:commandLink></li>
</h:form>
<h:form id="form2" name="form2">
   <h:outputText value="#{managedBean.text}" id="text"/>
</h:form>

在渲染属性中

@all 为我工作。但 form2/text 不起作用。

请帮我。

提前致谢。

4

1 回答 1

10

客户端 ID 与它们的命名容器相关,因此 JSF 会查找名称form2仅在内部的组件form1。如果你想逃离这个容器,你需要在你的 id 前面加上一个冒号。

所以以下应该工作:

<f:ajax listener="#{managedBean.tabChange}" event="click" render=":form2"/>
于 2013-03-11T09:44:31.947 回答