Выполнить commandButton внутри формы с ошибками проверки - PullRequest
3 голосов
/ 23 февраля 2012

Я хочу выполнить функцию в 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, Spring3.1.0

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Используйте immediate="true" на вашем <h:commandButton>. Вот статья, специально посвященная кнопкам Отмена и атрибуту immediate="true": http://jerryorr.blogspot.com/2012/01/jsf-and-immediate-attribute-command.html

1 голос
/ 23 февраля 2012

Существует как минимум 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>
    
...