【发布时间】:2012-03-27 08:43:16
【问题描述】:
这个问题与here 的问题类似,但该解决方案在这里不起作用。
以这个简单到极致的例子为例:
<h:form>
<h:inputText required="true" value="#{mrBean.someValue}" />
<h:inputText required="true" value="#{mrBean.someValue2}" />
<h:commandButton value="Submit">
<f:ajax execute="@form" />
</h:commandButton>
<h:commandButton immediate="true" action="#{mrBean.clearAllValues}" value="Clear">
<f:ajax render="@form" />
</h:commandButton>
</h:form>
还有豆码:
public void clearAllValues() {
setSomeValue(null);
setSomeValue2(null);
}
以这个场景为例:
- 在第一个输入中输入“X”值
- 使用“提交”按钮提交。 (验证失败)
- 在同一输入中输入“Y”。
- 点击“清除”按钮。
- 结果:输入不清除,第一个输入的值返回到“X”。
我希望这种情况会清除输入值,但它不会,相反,它会恢复先前提交的值“X”。它实际上从未真正在 bean 上运行 mrBean.getSomeValue()(它会返回 null 并清除输入字段)
这个问题与 JSF 不能很好地处理必填字段和即时有关。我想知道是否有人设法克服了这个问题。
谢谢! 本。
【问题讨论】:
-
@MattHandy 我正在使用 MyFaces 2.0.11。