2012-02-23 211 views
3

我想在backingbean執行功能,驗證錯誤在表單中使用一個命令執行的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,3.1.0春季

回答

1

至少有2種方式:

  1. 添加immediate="true"到取消按鈕。這會跳過所有沒有這個設置的輸入字段。

    <h:commandButton id="cancel" ... immediate="true" /> 
    

    這時候你已經在一些輸入字段使用immediate="true"優先驗證可能只是無法正常工作。

  2. 讓它執行一個ajax請求,其中您只執行@this並因此忽略所有字段。

    <h:commandButton id="cancel" ... > 
        <f:ajax execute="@this" render="@all" /> 
    </h:commandButton>