Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring Valang валидатор, не совсем корректо валидирует 
V
    Опции темы
Entwickler
Дата 28.12.2011, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



Всем привет,

есть веб приложение, в котором нужно проверить значение [consulting.wishFee.fee]. Если 0 то одино сообшение, типо цена не может быть 0, если пусто то другое, а если NumberFormat не корректен, то третее... так вот "пусто" и "numberformat" exception типо е5 отлавливает, а вот равенство с 0 нет. Формат данных: 0,00. Приложение на Spring + Spring Web Flow.

Валидатор прописан так:
Код

<bean id="beratungValidator" class="org.springmodules.validation.valang.ValangValidator">
            <property name="customFunctions">
                <map>
                    <entry key="customAdd" value="de.proactiv.pbv.icf.core.spring.validation.CustomAddFunction" />
                </map>
            </property>
                <property name="valang">
                    <value>
                <![CDATA[
                        { incuredPerson.person.birthday: (? is not null) : '' : 'required' }
                        { incuredPerson.person.birthday : (? is null OR ? <= [T]) : '' : 'typeMismatch' }
                        { consulting.incurenceExistent : (? is not null) : '' : 'required' }
                        { consulting.wishFee.fee : (? == 0) : '' : 'tooSmall' }
                        { consulting.wishFee.fee : (? has text and consulting.wishFee.fee > 0) : '' : 'required' }
                .................


так вот "оно" выдаёт мне два месседжа если 0, и tooSmall и required.... нигде что то не могу найти нормальное описание синтаксу...

заранее спасибо за советы : - )
PM MAIL   Вверх
Nofate
Дата 28.12.2011, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 2
Всего: 8



Код

{ consulting.incurenceExistent : (? is not null) : '' : 'required' }
{ consulting.wishFee.fee : (? == 0) : '' : 'tooSmall' }


Логично. 0 не является null-ом (0 is not null).  Поэтому оба условия срабатывают. Наверное, в первом случае вам стоит (? is not null) заменить на (? is null) по смыслу.

PS. valang первый раз вижу, все рассуждения сугубо аналитические. )

PPS. Синтаксис разжеван здесь.

Это сообщение отредактировал(а) Nofate - 28.12.2011, 12:55


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
Entwickler
Дата 28.12.2011, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



а я и не знал что 0 это не NULL : - )

теперь серьёзно, меня интерессуют поля consulting.wishFee.fee а не другие... там я проверяю на 0 а не NULL...
PM MAIL   Вверх
Entwickler
Дата 28.12.2011, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 14.4.2007

Репутация: нет
Всего: 2



Решил таким образом:

Код

...

{ consulting.wishFee.fee : (? is not null) : '' : 'required' }
{ consulting.wishFee.fee : (? is null or consulting.wishFee.fee > 0) : '' : 'tooSmall' }
...


Работает так:

1] отказывает в выполнении только если "НОЛЬ" (пусто)
2] отказывпет в выполнении только если НЕ "НОЛЬ" (пусто) и меньше 0

Немного гемарные у них "assertions"

Всем ПОКА!!! : - )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1020 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.