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

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

Загрузка JavaScript как ресурса

Файл ресурсов jsf.js, связанный с JavaServer Faces, доступен в библиотеке javax.faces. Эта библиотека ресурсов поддерживает функциональность Ajax в приложениях JavaServer Faces.

Если вы используете тег f:ajax на странице, ресурс jsf.js автоматически доставляется клиенту. Нет необходимости использовать тег h:outputScript для указания этого ресурса. Вы можете использовать тег h:outputScript для указания других библиотек JavaScript.

Чтобы использовать ресурс JavaScript напрямую с UIComponent, вы должны явно загрузить ресурс, как описано в одной из следующих тем:

Использование JavaScript API в приложении Facelets

Чтобы использовать API JavaScript непосредственно в веб-приложении, например на странице Facelets:

  1. Определите ресурс JavaScript по умолчанию для страницы с помощью тега h:outputScript.

    Например, рассмотрим следующий раздел страницы Facelets:

    <h:form>
        <h:outputScript name="jsf.js" library="javax.faces" target="head"/>
    </h:form>

    Указание цели как head заставляет ресурс сценария отображаться в элементе head на странице HTML.

  2. Определите компонент, к которому вы хотите присоединить функциональность Ajax.

  3. Добавьте функциональность 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

Название

Значение

execute

Разделённый пробелами список идентификаторов или одно из ключевых слов, перечисленных в табл. 13-2. Идентификаторы ссылаются на компоненты, которые будут обрабатываться в фазе выполнения жизненного цикла.

render

Разделённый пробелами список идентификаторов или одно из ключевых слов, перечисленных в табл. 13-2. Идентификаторы ссылаются на компоненты, которые будут обработаны в фазе отрисовки жизненного цикла.

onevent

String, который является именем функции JavaScript, вызываемой при возникновении события.

onerror

String, который является именем функции JavaScript, вызываемой при возникновении ошибки.

params

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

Если идентификатор не указан, предполагаемое ключевое слово по умолчанию для атрибута execute — @this, а для атрибута render — @none.

Вы также можете поместить метод JavaScript в файл и включить его в качестве ресурса.

Использование аннотации @ResourceDependency в классе бина

Используйте аннотацию javax.faces.application.ResourceDependency, чтобы класс бинов загрузил библиотеку jsf.js по умолчанию.

Чтобы загрузить ресурс Ajax со стороны сервера:

  1. Используйте метод jsf.ajax.request в классе компонента.

    Замечание:

    Этот метод обычно используется при создании кастомного компонента или пользовательского отрисовщика для компонента.

    В следующем примере показано, как ресурс загружается в класс компонента:

    @ResourceDependency(name="jsf.js" library="javax.faces" target="head")

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