我有一个Primefaces选项卡视图,其中包含两个选项卡和一个inputHidden
元素,其中包含一些字符串。在第一个标签上有一个commandButton
,用于更改inputHidden
元素的值。我想在useText
JS函数中使用该更改的值,但我得到一个隐藏字段的旧值。
更新我的隐藏字段后,它已更新,但第二个选项卡上的输出文本未更新,我不明白,为什么。
<h:form id="formMain">
...
<p:tabView onTabChange="useText(#{bean.text});">
<p:tab title="tab1">
<p:commandButton value="Change" action="#{bean.doBtnChangeText}" update=":formMain:hidArray @(.textTest)" />
</p:tab>
<p:tab title="tab2" >
<h:outputText styleClass="textTest" value="#{bean.text}" />
</p:tab>
</p:tabView>
...
<h:inputHidden id="hidText" value="#{bean.text}" immediate="true" />
</h:form>
编辑:我在第二个标签上添加了一些输出文本以检查更新的值。我在命令按钮上更新了隐藏字段和输出文本。隐藏字段已更新,但输出文本未更新。
答案 0 :(得分:1)
正如Jasper所说,您可以在命令按钮上尝试update
,或者尝试直接从bean doBtnChangeText()
更新,只需致电RequestContext.getCurrentInstance().update("form:hidText")
。
答案 1 :(得分:0)
Solved it by adding id
attribute to h:outputText
element.
<h:outputText id="outText" styleClass="textTest" value="#{bean.text}" />