<h:form>
<h:outputScript name="jsf.js" library="javax.faces" target="head"/>
</h:form>
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
Назад | Вперёд | Содержание |
Файл ресурсов jsf.js
, связанный с JavaServer Faces, доступен в библиотеке javax.faces
. Эта библиотека ресурсов поддерживает функциональность Ajax в приложениях JavaServer Faces.
Если вы используете тег f:ajax
на странице, ресурс jsf.js
автоматически доставляется клиенту. Нет необходимости использовать тег h:outputScript
для указания этого ресурса. Вы можете использовать тег h:outputScript
для указания других библиотек JavaScript.
Чтобы использовать ресурс JavaScript напрямую с UIComponent
, вы должны явно загрузить ресурс, как описано в одной из следующих тем:
Использование JavaScript API в приложении Facelets — использует тег h:outputScript
непосредственно на странице Facelets
Использование аннотации @ResourceDependency в классе бина — использует аннотацию javax.faces.application.ResourceDependency
в Java-классе UIComponent
Чтобы использовать API JavaScript непосредственно в веб-приложении, например на странице Facelets:
Определите ресурс JavaScript по умолчанию для страницы с помощью тега h:outputScript
.
Например, рассмотрим следующий раздел страницы Facelets:
<h:form>
<h:outputScript name="jsf.js" library="javax.faces" target="head"/>
</h:form>
Указание цели как head
заставляет ресурс сценария отображаться в элементе head
на странице HTML.
Определите компонент, к которому вы хотите присоединить функциональность Ajax.
Добавьте функциональность Ajax к компоненту с помощью JavaScript API. Например, рассмотрим следующее:
<h:form>
<h:outputScript name="jsf.js" library="javax.faces" target="head">
<h:inputText id="inputname" value="#{userBean.name}"/>
<h:outputText id="outputname" value="#{userBean.name}"/>
<h:commandButton id="submit" value="Submit"
onclick="jsf.ajax.request(this, event,
{execute:'inputname',render:'outputname'});
return false;" />
</h:form>
Метод jsf.ajax.request
принимает до трёх параметров, которые указывают источник, событие и параметры. Параметр source определяет элемент DOM, который запустил Ajax-запрос, обычно this
. Необязательный параметр события определяет событие DOM, которое вызвало этот запрос. Необязательный параметр options содержит набор пар имя/значение из таблицы 13-5.
Таблица 13-5 Возможные значения параметра Options
Название |
Значение |
|
Разделённый пробелами список идентификаторов или одно из ключевых слов, перечисленных в табл. 13-2. Идентификаторы ссылаются на компоненты, которые будут обрабатываться в фазе выполнения жизненного цикла. |
|
Разделённый пробелами список идентификаторов или одно из ключевых слов, перечисленных в табл. 13-2. Идентификаторы ссылаются на компоненты, которые будут обработаны в фазе отрисовки жизненного цикла. |
|
|
|
|
|
Объект, который может включать в себя дополнительные параметры для включения в запрос. |
Если идентификатор не указан, предполагаемое ключевое слово по умолчанию для атрибута execute
— @this
, а для атрибута render
— @none
.
Вы также можете поместить метод JavaScript в файл и включить его в качестве ресурса.
Используйте аннотацию javax.faces.application.ResourceDependency
, чтобы класс бинов загрузил библиотеку jsf.js
по умолчанию.
Чтобы загрузить ресурс Ajax со стороны сервера:
Используйте метод jsf.ajax.request
в классе компонента.
Замечание: Этот метод обычно используется при создании кастомного компонента или пользовательского отрисовщика для компонента. |
В следующем примере показано, как ресурс загружается в класс компонента:
@ResourceDependency(name="jsf.js" library="javax.faces" target="head")
Назад | Вперёд | Содержание |