Как обнаружить изменение значения поля на странице JSF 2.0 - PullRequest
5 голосов
/ 05 марта 2012

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

Я использую нольпроверка каждого значения поля в компоненте поддержки, чтобы сделать это сейчас, но это очень утомительная и повторяющаяся работа.Мне было интересно, есть ли разумное решение для этого?Любая помощь будет высоко оценена.

Заранее спасибо.

Ответы [ 2 ]

11 голосов
/ 05 марта 2012

Для этого предполагается использовать атрибут valueChangeListener.

<h:inputText ... valueChangeListener="#{bean.changed}" />

с

public void changed(ValueChangeEvent event) {
    this.changed = true;
}
1 голос
/ 05 марта 2012

Ваши значения полей, вероятно, связаны со свойствами базового компонента. Когда значение изменяется, вызывается установщик. Внутри сеттера вы можете установить для булевого поля компонента значение true, если значение действительно изменилось.

public void setPropertyX(Type newValue) {
    if(!newValue.equals(this.X)) {
        this.X = newValue;
        this.fieldChanged = true;
    }
}

Чтобы это работало, ваш бэк-бин должен быть хотя бы в @ViewScope.

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