сброс атрибутов в Java Faces - PullRequest
       0

сброс атрибутов в Java Faces

2 голосов
/ 05 ноября 2011

Я добавил код для проверки полей на сайте javafaces:

<h:outputLabel value="Password:"></h:outputLabel>
<h:inputSecret id="password" binding="#{password}" value="#{register.password}" required="true" requiredMessage="Password field must be filled in"></h:inputSecret>
<h:outputLabel value="Repeat password:"></h:outputLabel>
<h:inputSecret id="password2" required="true" requiredMessage="Repeat password field must be filled in">
    <f:validator validatorId="sameValueValidator"/>
    <f:attribute name="value" value="#{password.value}"/>
    <f:attribute name="message" value="Passwords do not match"/>
</h:inputSecret>

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

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Код выглядит нормально и должен работать нормально, при условии, что ваш валидатор правильно реализован.Признак получения ранее представленного значения 1-го поля пароля должен появляться только тогда, когда вы оставляете это поле пустым .Это потому, что вы передаете #{password.value}, который будет содержать предыдущее значение в случае сбоя проверки.Вместо этого вы должны передать #{password.submittedValue}, но это, в свою очередь, будет содержать null, когда проверка пройдет успешно.

Если вы действительно получите предыдущее значение, когда вводите что-то еще в поле, то это, вероятно, вызвало ошибкучем-то другим, чем то, что вы показали в своем вопросе.Возможно, в реализации JSF или чем-то еще в вашем коде.Возможно, вы используете <f:ajax> на командной кнопке и не рендеринге полей ввода.

0 голосов
/ 06 ноября 2011

<h:inputSecret id="password2" required="true" requiredMessage="Repeat password field must be filled in"> <f:validator validatorId="sameValueValidator"/> <f:attribute name="value" value="#{password.value}"/> <f:attribute name="message" value="Passwords do not match"/> </h:inputSecret>

Полагаю, вы должны немедленно указать true для inputSecret

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