【问题标题】:InputText not sending new valuesInputText 不发送新值
【发布时间】:2015-07-23 12:38:54
【问题描述】:

我有一个简单的 inputText,我通过从对象中获取它来设置默认值。编辑 inputTexts 值后,我按下一个按钮,该按钮调用 bean 中的保存方法。我希望 inputText 会理解我更改了它的值并会在我编辑它时更改对象值。事实证明,我得到的是旧值,而不是 bean 中的新值(编辑过的值)。

也许您知道造成此问题的主要原因是什么?

这是我的输入文本:

<h:inputText value="#{associationBean.counterTypeView.name}"
    id="ctpName" maxlength="100" 
    validatorMessage="#{msg['classifier.nameRequire']}">
    <f:validateRequired />
    <rich:validator />
</h:inputText>

【问题讨论】:

  • 您能否提供更多有关 Button 和 Bean 的详细信息?
  • 仔细阅读stackoverflow.com/tags/jsf/info 的第一部分并相应地解决您的问题。其中,您没有显示您是如何提交表单的。
  • 奇怪的是 - 我开始遇到同样的问题。我不知道是什么原因造成的,但我观察到只需删除 id 属性即可使其再次按预期工作。但是这种解决方法是不可接受的,因为我需要 id 例如在 &lt;h:outputLabel&gt; 中设置 for 属性的目标。

标签: jsf richfaces


【解决方案1】:

你可以像这样在 h:inputText 标签内使用 JSF ajax

<h:inputText value="#{associationBean.counterTypeView.name}" 
     id="ctpName" 
     maxlength="100" 
      validatorMessage="#{msg['classifier.nameRequire']}"> 
          <f:validateRequired /> 
          <rich:validator />
          <f:ajax   event="blur"/>
</h:inputText>

也就是说,在 Input Text 的 blur 事件中,Ajax 将被调用,并且您的新数据将保存在指定的 bean 中

【讨论】:

  • 谢谢!它有帮助。也许你知道我应该为rich:select 下拉列表和h:selectBooleanCheckbox 使用什么?
  • 不客气!! ,请您添加确切的代码。我只使用过 JSF 2 和 ICEfaces 吗?
  • 当然。这是给rich:select&lt;rich:select id="ctpMeasurementUnits" value="#{associationBean.selectedMruId}"&gt; &lt;f:selectItemsvalue="#{measurementUnitsListBean.allMeasurementUnits}" var="mru" itemLabel="#{mru.mruName}" itemValue="#{mru.mruId}" /&gt; &lt;f:validateRequired /&gt; &lt;rich:validator /&gt; &lt;/rich:select&gt;
  • @WheelPot 你在这里遇到什么问题,如果你选择任何一个选择项,提交页面,你无法在指定的bean中找到值?
  • 是的,就是这样。 POST 发送正确的数据,但 bean 获取未更改的数据。就像我在 inputText 上遇到的确切问题。
【解决方案2】:

像这样在你的 inputText 控件中插入&lt;a4j:ajax execute="@this"/&gt;

<h:inputText value="#{associationBean.counterTypeView.name}" 
     id="ctpName" 
     maxlength="100" 
     validatorMessage="#{msg['classifier.nameRequire']}"> 
          <f:validateRequired /> 
          <rich:validator />
          <a4j:ajax execute="@this" />
</h:inputText>

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2020-03-29
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多