JSF немедленный = true для пропуска проверки - PullRequest
0 голосов
/ 31 марта 2011

Не должен ли immediate="true" commandLink пропустить проверку?Я все еще получаю сообщение "Требуется пароль", когда я нажимаю эту ссылку, есть идеи?

<h:inputSecret id="j_password" autocomplete="off" value="#{authenticationBean.password}" required="true" requiredMessage="Password is Required" />

<p:commandLink action="#{authentication.forgotPassword}" ajax="false">
    <h:outputText value="#{bundle['login.forgotpassword.TEXT']}" immediate="true"/>
</p:commandLink>

Ответы [ 3 ]

1 голос
/ 27 августа 2013

Непосредственный атрибут не пропускает проверку.Он перемещает компонент и все его события, валидаторы и т. Д. В фазу APPLY_REQUEST.Так что у вас есть возможность обрабатывать вводы и команды перед всеми другими не немедленными вводами и командами.

http://www.javacodegeeks.com/2012/01/jsf-and-immediate-attribute-command.html

Если вы хотите пропустить проверку с немедленной, вам придется принятьсоответствующее действие в случае немедленного действия, чтобы избежать дальнейшей обработки входных данных и их событий, таких как перенаправление FacesContext.

1 голос
/ 31 марта 2011

Вы положили его на <h:outputText> вместо <p:commandLink>. Атрибут immediate не влияет на компоненты UIOutput (и может привести к ошибке проверки XML также в некоторых средах), он влияет только на компоненты UIInput и UICommand. Переместите атрибут в компонент <p:commandLink>.

0 голосов
/ 04 октября 2018

<o:validateBean> позволяет разработчику управлять проверкой bean-компонента на основе компонентов UICommand или UIInput, а также проверкой данного bean-компонента на уровне класса.

Стандарт допускает контроль валидации только для каждой формы или для каждого запроса (с использованием нескольких тегов и условных выражений EL в его атрибутах), которые могут оказаться в стандартном коде. Стандарт также, несмотря на свое название, на самом деле не имеет никаких средств для проверки bean-компонента.

<o:validateBean disabled="true"/> эта команда пропустит проверки

<p:commandButton 
            id="refresh"
            icon="fa fa-refresh"
            styleClass="refresh-button btn-blue"
            process="@form"
            update="phone_1 @form:htmlView">
   <o:validateBean disabled="true"/>
</p:commandButton>

OR

Обработчик тега <o:skipValidators> позволяет разработчику полностью пропустить проверку при выполнении действия UICommand или ClientBehaviorHolder. Этот обработчик тегов должен быть помещен в компонент UICommand или ClientBehaviorHolder (компоненты-держатели поведения клиента - это компоненты, поддерживающие <f:ajax>).

<p:commandButton 
      id="refresh"
      icon="fa fa-refresh"
      styleClass="refresh-button btn-blue"
      process="@form"
      update="phone_1 @form:htmlView">
   <o:skipValidators/>
</p:commandButton>

Если вы хотите узнать больше, просто посмотрите здесь:

http://showcase.omnifaces.org/validators/validateBean http://showcase.omnifaces.org/taghandlers/skipValidators

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...