JSF 2 – очистка атрибутов компонента при загрузке страницы?

StackOverflow https://stackoverflow.com/questions/2467943

  •  20-09-2019
  •  | 
  •  

Вопрос

Настоящий вопрос: Есть ли способ очистить определенные атрибуты для всех компонентов при начальной загрузке страницы?

Справочная информация:

В моем приложении есть внешний слой JSF 2.0, который взаимодействует с уровнем обслуживания (уровень обслуживания состоит из bean-компонентов Spring, которые внедряются в управляемые bean-компоненты).

Уровень сервиса выполняет свою собственную проверку, и я провожу ту же проверку на уровне внешнего интерфейса, используя свои собственные классы валидаторов, чтобы попытаться каким-то образом избежать дублирования кода.Эти классы валидаторов не являются валидаторами JSF, это просто POJO.

Я выполняю проверку только действия, поэтому в методе действия я выполняю проверку, и только если она действительна, я вызываю уровень обслуживания.

Когда я выполняю проверку, я устанавливаю styleClass и заголовок для UIComponents, используя отражение (поэтому, если UIComponent имеет методы setStyleClass(:String) или setTitle(:String), я использую их).

Это прекрасно работает, и при ошибке проверки я вижу красиво оформленное текстовое поле со всплывающим окном, содержащим сообщение об ошибке, если навести на него курсор.Однако, поскольку компонент привязан к управляемому компоненту с областью действия сеанса, кажется, что эти атрибуты сохраняются.Поэтому, если я уйду и вернусь на ту же страницу, styleClass и заголовок все еще будут в состоянии ошибки.

Есть ли способ очистить атрибуты styleClass и title при каждой начальной загрузке страницы?

Спасибо,

Джеймс

P.S.Я использую метод действия для проверки из-за некоторых проблем, которые у меня были раньше с JSF 1.2 и его методами проверки, но не могу вспомнить, почему...вот почему я использую метод действия для проверки.

Это было полезно?

Решение

Хорошо, мне нужно использовать PhaseListener, см. эта запись в блоге BalusC и эта другая запись в блоге, это гораздо лучший способ сделать то, что я уже делаю - установить styleClass вручную с помощью отражения - которое получает все компоненты с сообщениями и выделяет их...Я собираюсь сделать то же самое, но думаю, что вместо этого можно добавить атрибут, еще не пробовал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top