我有一个带有表单和输入文本的页面,它表示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中显示的值始终保持不变。
答案 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>
不要忘记修复嵌套表单问题。