<h:inputtext>不更新</h:inputtext>

时间:2015-03-16 16:08:13

标签: jsf

我有一个带有表单和输入文本的页面,它表示bean的值。在页面底部,我有一个导航按钮,可以转到下一个条目:

<h:form id="customerData">
...
    <h:outputText value="#{customeredit.customer.name}" />
    <br />
    <h:inputText size="60" id="name" value="#{customeredit.customer.name}" />
...
</h:form>

<p:commandButton value="Next customer" action="customers" ajax="false" id="nextCustomer">
    <f:param name="linkageAreaId" value="#{customeredit.nextCustomer.id}" />
</p:commandButton>

如果单击该按钮,页面将重新加载,则会在后台加载新的客户对象,并且除了inputText之外,所有条目都会更新。 outputText会更改,但inputText始终保留初始化时获得的值。我还检查了getter,getters的值从新客户变化,但inputText中显示的值始终保持不变。

1 个答案:

答案 0 :(得分:1)

如果您正在嵌套表单(HTML中为illegal),那么输入和按钮最终都会以相同的形式结束。然后该按钮也会提交输入字段。在任何情况下,您都不应该使用<p:commandButton>进行页面到页面的导航。请改用<p:button>

<p:button value="Next customer" outcome="customers" id="nextCustomer">
    <f:param name="linkageAreaId" value="#{customeredit.nextCustomer.id}" />
</p:button>

不要忘记修复嵌套表单问题。

另见: