在选项卡更改时更新h:inputHidden

时间:2016-12-06 14:48:41

标签: jsf primefaces hidden-field

我有一个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>

编辑:我在第二个标签上添加了一些输出文本以检查更新的值。我在命令按钮上更新了隐藏字段和输出文本。隐藏字段已更新,但输出文本未更新。

2 个答案:

答案 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}" />