Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 JSF2.0验证错误导致输入字段显示本地值,而不是更新的模型值_Jsf 2_Validation - Fatal编程技术网

Jsf 2 JSF2.0验证错误导致输入字段显示本地值,而不是更新的模型值

Jsf 2 JSF2.0验证错误导致输入字段显示本地值,而不是更新的模型值,jsf-2,validation,Jsf 2,Validation,该应用程序使用JSF2.0框架。 用户向表单输入值。当用户选择“保存”时,有些字段有验证错误,有些字段没有。 用户单击取消按钮。然后用户再次单击更新按钮。 即使更新了模态值,在选择“保存”时具有有效值的字段也会显示本地值,而不是更新的模型值 我通过在cancel的action方法中添加resetValues()方法解决了这个问题。 resetValues()循环遍历子项列表,并将本地值重置为null 是否有更好的解决方案来改善应用程序的性能?取消按钮应重新创建视图。您可以通过将导航结果返回到同一

该应用程序使用JSF2.0框架。 用户向表单输入值。当用户选择“保存”时,有些字段有验证错误,有些字段没有。 用户单击取消按钮。然后用户再次单击更新按钮。 即使更新了模态值,在选择“保存”时具有有效值的字段也会显示本地值,而不是更新的模型值

我通过在cancel的action方法中添加resetValues()方法解决了这个问题。 resetValues()循环遍历子项列表,并将本地值重置为null


是否有更好的解决方案来改善应用程序的性能?

取消按钮应重新创建视图。您可以通过将导航结果返回到同一视图来完成此操作,如果需要,请使用
faces redirect=true

感谢您的快速响应。你的解决方案也很有效。只有当该方法返回的是页面名而不是空字符串时,它才起作用。不客气。实际上,它必须是有效的视图ID,而不是空字符串或
null
void
。理论上,您甚至可以执行
。表单有两个面板组,打开和关闭状态。取消按钮具有ajax。如果我删除命令按钮的ajax,它就会工作。但是,如果我使用immediate=true并execute=“@this”为命令按钮添加ajax,则会保留以前的值。只有在使用
faces redirect=true
时,ajax才会导航。我返回“viewId?faces redirect=true”,并且这些值仍然显示本地值,而不是更新的模型值<代码>