| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > JSF Validator |
| Автор: neveragny 13.4.2010, 13:57 | ||||||
| Добрый день, господа. Вот проблема у меня, не могу добится того, что бы заработал валидатор, и в конфиге указал и все имена совпадают, но не хочет он работать. не мог бы мне кто нибуть помочь? код из jsp-шки
faces-config.xml
И сам валидатор бин
Заранее спасибо |
| Автор: SlavaSemushin 13.4.2010, 18:16 |
| А где TLD-файл? Ну и, согласно книжке, ещё нужен "обработчик дескриптора, который расширяет класс ValidatorELTag, включающий атрибуты, представленные в файле TLD, и передающий их объекту валидатора". Это действительно весь ваш валидатор или просто "лишь бы работал"? Если весь, то он не нужен -- required="true" у вас уже есть, просто добавьте requiredMessage и всё. Ну и можно поступить проще (чтобы не заморачиваться с TLD-файлом) -- добавить метод в какой-либо бин, который бы валидировал значение. |
| Автор: SlavaSemushin 14.4.2010, 13:43 |
| Так, про обработчик дескриптора не обращайте внимание -- в вашем случае он не нужен (это если бы вы собрались использовать его как тег, типа <my:requiredValidator />). Несколько раз посмотрел на ваш код -- выглядит правильно. Предлагаю попробовать разные варианты: - добавить <h:messages />, чтобы видеть все сообщения об ошибках - попробовать использовать полное имя класса в качестве имени валидатора - возможно, что-то не так со структурой JSF-документа (например, у вас отсутствует f:view) - поместить весь код метода validate() в блок try{}catch() и логгировать возможное исключение (например, у вас там может быть NullPointerException) - попробовать прочитать http://www.laliluna.de/articles/jsf-validation-error-handling-tutorial.html -- вдруг что-то заметите или придумаете - попробовать вынести валидатор в метод бина (вместо отдельного класса) Успехов! |