Как выполнить проверку единственного ввода с помощью @FacesValidator, используя событие ajax и вывести сообщение? - PullRequest
0 голосов
/ 10 марта 2019

использование: JSF 2.3.2 Мохарра

при добавлении ajax в мой jsf я встретил такой случай:

невозможно обновить: h: идентификатор сообщения = "phoneNumber-msg" во время выполнения формы

<h:messages id="validation-messages" styleClass="validation-messages"/>
<h:form>
    <h:outputLabel for="phoneNumber">Phone number</h:outputLabel>
    <h:inputText id="phoneNumber" value="#{bean.phoneNumber}">
        <f:validator validatorId="validators.PhoneNumber"/>
        <f:ajax event="blur" execute="@this" render="phoneNumber-msg"/>
    </h:inputText>
    <h:message id="phoneNumber-msg" for="phoneNumber"/>
    [...]
    <h:commandButton value="Submit" action="#{userDetails.submit}"/>
</h:form>

и валидаторы. PhoneNumber является @FacesValidator:

@FacesValidator("validators.PhoneNumber")
public class PhoneNumberValidator implements javax.faces.validator.Validator {
    @Override
    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException { ... }
}

ДОПОЛНИТЕЛЬНО

Проверка работает правильно (сообщение от validators.PhoneNumber произошло в обоих случаях: id = "validation-messages" и id = "phoneNumber-msg" ) при обновлении кнопкой «Отправить», которая завершает форму:

   <h:commandButton value="Submit" action="#{userDetails.submit}"/>
</h:form>

Если вы думаете о другом способе проверки -> при вводе EmailAddress я использовал свою собственную аннотацию класса ( EmailAddressValidator реализует ConstraintValidator ), который проверяется с помощью @ValidEmailAddress для bean-компонента, используемого в форме - он отображает проверку электронной почты сообщение правильно, но здесь я хотел бы проверить PhoneNumber по-другому.


Можно ли отобразить id = "phoneNumber-msg" (что означает выполнение validators.PhoneNumber во время выполнения формы?

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