我有一个带有重置按钮的表单。此按钮的目的是重置表单的值。当没有验证错误时,这可以正常工作。
当出现验证错误时,它不起作用。
<h:form id="form">
<h:inputText id="v1" value="#{bean.value1}"/>
<h:inputText id="v2" value="#{bean.value2}" required="true"/>
<h:commandLink value="submit" action="#{bean.submit}">
<f:ajax render="v1 v2"/>
</h:commandLink>
<h:commandButton value="reset" action="#{bean.dummy}">
<f:ajax render="@form" resetValues="true"/>
</h:commandButton>
</h:form>
当我尝试在单击“提交”按钮之前重置值时,将重置所有值。
当我在字段 v1 输入一些值而字段 v2 中没有值时,按下保存时,我会按预期获得验证消息。
现在,我尝试通过单击重置按钮来重置值。它只会重置无效字段 v2 。有效字段 v1 未重置。
我错过了什么。
答案 0 :(得分:3)
Utilities.Tuple
有一个误导性的名字。它仅重置组件状态。它不会重置模型值。你自己仍然对此负责。
resetValues
<h:commandButton value="reset" action="#{bean.reset}">
<f:ajax render="@form" resetValues="true"/>
</h:commandButton>
另一种方法是将public void reset() {
value1 = null;
value2 = null;
}
放入按钮,这会将表单重置为初始状态,就像将页面呈现给最终用户时一样。
type="reset"
更好的是刷新页面。
<h:commandButton value="reset" type="reset" />