我想在backbean中执行一个函数,使用带有验证错误的表单中的CommandButton。
使用代码示例,我想调用函数'resiCon.cancel()',无论表单上是否存在验证错误。
你能帮助我吗?
<h:form id="mainform">
....
<h:inputText value="#{resiCon.code">
<f:validateLongRange minimum="1" />
</h:inputText>
<h:commandButton id="save" value="Save" update="mainform" action="#{resiCon.save()}"/>
<h:commandButton id="cancel" value="Cancel" update="mainform" action="#{resiCon.cancel()}"/>
</h:form>
非常感谢你。
Tomcat v7.0,Myfaces 2.1.5,Spring 3.1.0
答案 0 :(得分:1)
至少有两种方式:
将immediate="true"
添加到取消按钮。这会跳过没有此设置的所有输入字段。
<h:commandButton id="cancel" ... immediate="true" />
当您在某些输入字段中使用immediate="true"
来确定优先级时,这可能无效。
让它执行一个ajax请求,其中只执行@this
,从而忽略所有字段。
<h:commandButton id="cancel" ... >
<f:ajax execute="@this" render="@all" />
</h:commandButton>
答案 1 :(得分:1)
在immediate="true"
上使用<h:commandButton>
。这是一篇专门针对取消按钮和immediate="true"
属性的文章:http://jerryorr.blogspot.com/2012/01/jsf-and-immediate-attribute-command.html