Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Связывание конвертеров, слушателей и валидаторов со свойствами Managed-бина

Как описано в Добавление компонентов на страницу с помощью библиотеки тегов HTML, автор страницы может привязать реализации конвертера, слушателя и валидатора к свойствам Managed-бина, используя атрибуты binding тегов, которые используются для регистрации реализаций компонентов.

Этот метод имеет те же преимущества, что и привязка объектов компонента к свойствам Managed-бина, как описано в Связывание значений компонента и объектов со свойствами Managed-бина. В частности, привязка реализации конвертера, слушателя или валидатора к свойству Managed-бина даёт следующие преимущества.

  • Managed-бин может создавать реализацию, вместо того чтобы позволять автору страницы делать это.

  • Managed-бин может программно изменять атрибуты реализации. В случае кастомной реализации единственным способом изменения атрибутов вне класса реализации будет создание для него кастомного тега и требование от автора страницы установить значения атрибутов со страницы.

Независимо от того, привязываете ли вы конвертер, слушатель или валидатор к свойству Managed-бина, этот процесс одинаков во всех случаях.

  • Вложите тег конвертера, слушателя или валидатора в соответствующий тег компонента.

  • Убедитесь, что Managed-бин имеет свойство, которое принимает и возвращает класс реализации конвертера, слушателя или валидатора, который вы хотите привязать к свойству.

  • Ссылка на свойство Managed-бина с помощью выражения значения из атрибута binding тега конвертера, слушателя или валидатора.

Для примера предположим, что вы хотите связать стандартный конвертер DateTime со свойством Managed-бина, чтобы установить шаблон форматирования ввода пользователя в Managed-бин, а не на страницу Facelets. Сначала страница регистрирует конвертер в компоненте, вкладывая тег f:convertDateTime в тег компонента. Затем страница ссылается на свойство с атрибутом binding тега f:convertDateTime:

<h:inputText value="#{loginBean.birthDate}">
    <f:convertDateTime binding="#{loginBean.convertDate}" />
</h:inputText>

Свойство convertDate будет выглядеть примерно так:

private DateTimeConverter convertDate;
public DateTimeConverter getConvertDate() {
    ...
    return convertDate;
}
public void setConvertDate(DateTimeConverter convertDate) {
    convertDate.setPattern("EEEEEEEE, MMM dd, yyyy");
    this.convertDate = convertDate;
}

Смотрите Запись свойств объектов, привязанных к конвертерам, слушателям или валидаторам для получения дополнительной информации о написании свойств Managed-бина для реализаций конвертера, слушателя и валидатора.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)