<?xml version="1.0" encoding='UTF-8'?>
|
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
| Назад | Вперёд | Содержание |
JavaServer Faces обеспечивает переносимый формат конфигурации (в виде документа XML) для настройки ресурсов приложения. Один или несколько документов XML, называемых файлами конфигурации приложения, могут использовать этот формат для регистрации и настройки объектов и ресурсов, а также для определения правил навигации для приложений. Файл конфигурации приложения обычно называется faces-config.xml.
Файл конфигурации приложения необходим в следующих случаях:
Чтобы указать элементы конфигурации для вашего приложения, которые недоступны через аннотации Managed-бина, такие как локализованные сообщения и правила навигации
Чтобы переопределить аннотации Managed-бина при развёртывании приложения
Файл конфигурации приложения должен быть действителен для схемы XML, расположенной по ссылке http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd.
Кроме того, каждый файл должен содержать следующую информацию в следующем порядке:
Номер версии XML, обычно с атрибутом encoding:
<?xml version="1.0" encoding='UTF-8'?>
Тег faces-config, содержащий все другие объявления:
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
...
</faces-config>
Вы можете иметь более одного файла конфигурации для приложения. JavaServer Faces находит файл/файлы конфигурации следующим образом.
Ресурс с именем /META-INF/faces-config.xml в любом из файлов JAR в каталоге /WEB-INF/lib/ веб-приложения и в загрузчиках родительских классов , Если ресурс с таким именем существует, он загружается как ресурс конфигурации. Этот метод полезен для упакованной библиотеки, содержащей некоторые компоненты и отрисовщики. Кроме того, любой файл с именем, оканчивающимся на faces-config.xml, также считается ресурсом конфигурации и загружается как таковой.
Параметр инициализации контекста, javax.faces.application.CONFIG_FILES, в файле дескриптора развёртывания, который указывает один или несколько путей (разделённых запятыми) нескольких файлов конфигурации для вашего веб-приложения. Этот метод чаще всего используется для приложений масштаба предприятия, которые делегируют отдельным группам ответственность за ведение файла для каждой части большого приложения.
Ресурс с именем faces-config.xml в каталоге /WEB-INF/ вашего приложения. Таким образом простые веб-приложения делают свои файлы конфигурации доступными.
Чтобы получить доступ к ресурсам, зарегистрированным в приложении, разработчик приложения может использовать объект класса javax.faces.application.Application, который автоматически создаётся для каждого приложения. Объект Application действует как централизованная фабрика для ресурсов, определённых в файле XML.
Когда приложение запускается, JavaServer Faces создаёт один объект класса Application и настраивает его в соответствии с информацией из файла конфигурации приложения.
Компоненты, управляемые JavaServer Faces (либо указанные в файле faces-config.xml, либо аннотированные javax.faces.bean.ManagedBean), создаются отложенно (lazy). То есть, они создаются при выполнении запроса из приложения.
Чтобы объект компонента в области видимости приложения создавался и помещался в область приложения сразу после запуска приложения и до выполнения любого запроса, атрибут eager Managed-бина должен быть установлен в true, как показано в следующих примерах.
Объявление файла faces-config.xml выглядит следующим образом:
<managed-bean eager="true">
Аннотация выглядит следующим образом:
@ManagedBean(eager=true)
@ApplicationScoped
Поскольку JavaServer Faces позволяет иметь несколько файлов конфигурации приложения, хранящихся в разных местах, в определённых ситуациях может быть важен порядок их загрузки (например, при использовании объектов уровня приложения). Этот порядок может быть определён через элемент ordering и его подэлементы в самом файле конфигурации приложения. Порядок файлов конфигурации приложения может быть абсолютным или относительным.
Абсолютный порядок определяется элементом absolute-ordering в файле. При абсолютном упорядочении пользователь указывает порядок, в котором будут загружаться файлы конфигурации приложения. В следующем примере показана запись для абсолютного упорядочения.
Файл my-faces-config.xml содержит следующие элементы:
<faces-config>
<name>myJSF</name>
<absolute-ordering>
<name>A</name>
<name>B</name>
<name>C</name>
</absolute-ordering>
</faces-config>
В этом примере A, B и C являются различными файлами конфигурации приложения и должны быть загружены в указанном порядке.
Если в файле есть элемент absolute-ordering, обрабатываются только файлы, перечисленные подэлементом name. Для обработки любых других файлов конфигурации приложения требуется подэлемент others. В отсутствие подэлемента others все неперечисленные файлы будут игнорироваться во время загрузки.
Относительный порядок определяется элементом ordering и его подэлементами before и after. При относительном упорядочении порядок загрузки файлов конфигурации приложения вычисляется с учётом порядка записей из разных файлов. В следующем примере показаны некоторые из этих соображений. В следующем примере config-A, config-B и config-C — это разные файлы конфигурации приложения.
Файл config-A содержит следующие элементы:
<faces-config>
<name>config-A</name>
<ordering>
<before>
<name>config-B</name>
</before>
</ordering>
</faces-config>
Файл config-B (здесь не показан) не содержит элементов ordering.
Файл config-C содержит следующие элементы:
<faces-config>
<name>config-C</name>
<ordering>
<after>
<name>config-B</name>
</after>
</ordering>
</faces-config>
Благодаря записи подэлемента before файл config-A будет загружен перед файлом config-B. Благодаря записи подэлемента after файл config-C будет загружен после файла config-B.
Кроме того, подэлемент others также может быть вложен в подэлементы before и after. Если присутствует элемент others, указанный файл может получить наивысшее или наименьшее предпочтение как среди перечисленных, так и незарегистрированных файлов конфигурации.
Если элемент ordering отсутствует в файле конфигурации приложения, этот файл будет загружен после всех файлов, содержащих элементы ordering.
| Назад | Вперёд | Содержание |
Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены.
Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)