2013-02-28 2 views
5

Я новичок в Struts2 и OGNL и делаю простую веб-приложение со страницей регистрации. Есть два поля: password и repassword (для повторного ввода пароля), и с использованием фреймворка проверки я хотел бы подтвердить, что оба пароля совпадают (я знаю, что могу легко это сделать с помощью JavaScript). Вот что я получил до сих пор. Все полевые валидаторы работают нормально. Это мой первый не-полевой валидатор, и я просто не могу заставить его работать.Struts 2 OGNL - Сравнение двух строковых значений в validation.xml

<validator type="expression"> 
    <param name="expression">${password}!=${repassword}</param> 
    <message>Passwords must match.</message> 
</validator> 

Я попытался как с

${password}!=${repassword} 

и без

password!=repassword 

в OGNL теги.

ответ

3

Валидатор expression является валидатором на уровне поля. Используйте валидатор fieldexpression, который является валидатором на уровне поля и проверяет использование выражения OGNL. И он должен быть равен (==).

<field name="password"> 
    <field-validator type="fieldexpression"> 
    <param name="expression"><![CDATA[password == repassword]]></param> 
    <message>Passwords must match.</message> 
    </field-validator> 
</field> 

Валидатор expression добавляет ошибки действий. Валидатор fieldexpression добавляет ошибки поля.

+0

Это сработало! Спасибо. Я все равно хотел бы понять, как заставить его работать как средство проверки выражений. Две приведенные выше ссылки, похоже, описывают одни и те же функциональные возможности только в разных словах. – BLam85

+0

@ BLam85: Обновлен мой ответ. Вы можете использовать средство проверки выражений, но для просмотра ошибок в JSP вам нужно использовать тег '. –

2

попробовать

%{password == repassword} 

проверяет, банкнотоприемник булева OGNL выражения, что оба равны.

+1

Это не сработало ... как и ожидалось. Не удалось проверить, совпадали ли пароли или нет. (т. е. возвращаемое действие). Однако сообщение никогда не отображалось, и я вижу следующее предупреждение в консоли: «1 марта 2013 г. 12:59:28 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn ВНИМАНИЕ: Получил результат null при попытке получить Boolean.' – BLam85

+0

Это выражение OGNL оценивается как true, если значения совпадают. –

Смежные вопросы