【问题标题】:<h:inputText> does not update<h:inputText> 不更新
【发布时间】:2015-03-16 16:08:13
【问题描述】:

我有一个带有表单和输入文本的页面,它代表 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,从 getter 返回的值会随着新客户的变化而变化,但 inputText 中显示的值始终保持不变。

【问题讨论】:

  • "我还检查了 getter,从 getter 返回的值会随着新客户的变化而变化,但 inputText 中显示的值始终保持不变。" 请仔细检查.
  • 使用稍有不同的 commandButton 操作 (action="#{myBean.actionNextGuy()"),我无法重现
  • JSF 的哪个版本?

标签: jsf


【解决方案1】:

如果您正在嵌套表单(在 HTML 中为 illegal),则可能会发生这种情况,因此输入和按钮最终都以相同的表单结束。然后该按钮也将提交输入字段。在任何情况下,您都不应该使用&lt;p:commandButton&gt; 进行逐页导航。请改用&lt;p:button&gt;

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

别忘了修复嵌套表单问题。

另见:

【讨论】:

  • 我认为嵌套表单抛出错误可能取决于所使用的浏览器。 Afaik,行为“未确定”
猜你喜欢
  • 2011-07-25
  • 2013-03-25
  • 2012-06-25
  • 2012-06-02
  • 2014-02-09
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多