我有一个用于创建记录的简单表单-它有一些必需的字段和两个按钮,一个用于提交,一个用于取消。问题是取消按钮不起作用(它实际上总是重新加载视图以创建记录),除非输入了所有必需的字段。字段看起来像这样
<h:inputText id="name"
value="#{userController.User.name}"
required="true"
requiredMessage="This field is required"
maxlength="11" tabindex="22" />
在spring webflow定义中,我添加了validation="false",也尝试了binding="false",但它没有帮助,虽然我不确定它是否相关,因为我有jsf验证的问题,而不是spring webflow验证。还要补充的是,我正在使用Richfaces 4,它可能是有用的信息。
提前感谢您的回答。
Stefan您的问题与Spring Webflows或Richfaces无关,而是与处理对服务器的每个请求的标准JSF生命周期有关。
这个周期由几个阶段组成(谷歌"jsf生命周期"有大量的插图和解释)。其中之一是处理所有验证器。如果验证失败,将终止循环并发送响应(当前页面+消息)。将无法到达处理取消按钮的方法调用阶段。
当将immediate=true
添加到按钮时,它将把该按钮的处理移动到流程验证阶段,因此在处理验证失败事件(从而重新呈现页面)之前,它将被称为。
尝试在取消按钮中添加immediate="true" XHTML