|
Spec-Zone .ru
спецификации, руководства, описания, API
|
|
|||||||||
| ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
| СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД | ||||||||
java.lang.Objectjavax.faces.application.ResourceHandler
public abstract class ResourceHandler
ResourceHandler является API времени выполнения который UIComponent и Renderer экземпляры могут сослаться Resource экземпляры. Реализация этого class должна быть ориентирована на многопотоковое исполнение.
Упаковка Ресурсов
ResourceHandler определяет путь, базируемый, упаковывая соглашение для ресурсов. Реализация по умолчанию ResourceHandler должен поддерживать ресурсы упаковки в пути к классу или в корне веб-приложения. См. раздел JSF.2.6.1 документа прозы спецификации, соединенного в сводке краткого обзора для нормативной спецификации упаковки ресурсов.
Кратко, реализация по умолчанию должна поддерживать ресурсы упаковки в корне веб-приложения под путем
resources/<resourceIdentifier>
относительно корня веб-приложения.
Для реализации по умолчанию ресурсы, упакованные в пути к классу, должны находиться под именем записи JAR
META-INF/resources/<resourceIdentifier>
<resourceIdentifier> состоит из нескольких сегментов, определенных следующим образом.
[localePrefix/][libraryName/][libraryVersion/]resourceName[/resourceVersion]
Ни один из сегментов в resourceIdentifier не может быть относительными путями, такой как ‘../otherLibraryName’. Реализация не обязана поддерживать libraryVersion и resourceVersion сегменты для случая упаковки JAR.
Отметьте, что resourceName является единственным необходимым сегментом.
Кодирование Ресурсов
Во время обработки запросов представления время выполнения JSF может быть призвано, чтобы закодировать ресурс таким способом как, чтобы дать агенту пользователя команду обращаться с последующей просьбой ресурса. Это поведение организуется одним из средств рендеринга ресурса (ScriptRenderer, StylesheetRenderer, ImageRenderer), который весь вызов Resource#getRequestPath получить закодированный URI для ресурса. См. Resource#getRequestPath и Стандартный HTML спецификация RenderKit для полной спецификации.
Декодирование Ресурсов
Во время обработки запросов ресурса время выполнения JSF будет призвано, чтобы декодировать ресурс таким способом как, чтобы подать байты ресурса к агенту пользователя. Это поведение организуется handleResourceRequest(javax.faces.context.FacesContext), который вызывает Resource#getInputStream получить байты ресурса. См. handleResourceRequest(javax.faces.context.FacesContext) для полной спецификации.
| Полевая Сводка | |
|---|---|
static java.lang.String |
LOCALE_PREFIX
Имя ключа в пределах приложения передает пакет, названный возвратом из |
static java.lang.String |
RESOURCE_EXCLUDES_DEFAULT_VALUE
Значение по умолчанию для |
static java.lang.String |
RESOURCE_EXCLUDES_PARAM_NAME
|
static java.lang.String |
RESOURCE_IDENTIFIER
|
| Сводка конструктора | |
|---|---|
ResourceHandler()
|
|
| Сводка метода | |
|---|---|
abstract Resource |
createResource(java.lang.String resourceName)
Создайте экземпляр |
abstract Resource |
createResource(java.lang.String resourceName, java.lang.String libraryName)
Создайте экземпляр |
abstract Resource |
createResource(java.lang.String resourceName, java.lang.String libraryName, java.lang.String contentType)
Создайте экземпляр |
abstract java.lang.String |
getRendererTypeForResourceName(java.lang.String resourceName)
Возвратитесь |
abstract void |
handleResourceRequest(FacesContext context)
Этот метод определяет контракт для того, чтобы удовлетворить запросы ресурса. |
abstract boolean |
isResourceRequest(FacesContext context)
Возвратиться |
abstract boolean |
libraryExists(java.lang.String libraryName)
Возвратиться |
| Методы, наследованные от class java.lang. Объект |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Полевая Деталь |
|---|
public static final java.lang.String RESOURCE_IDENTIFIER
Resource#getRequestPath возвращает значение этой константы как префикс URI. handleResourceRequest(javax.faces.context.FacesContext) ищет значение этой константы в пределах URI запроса, чтобы определить, является ли запрос запросом ресурса или запросом представления.
public static final java.lang.String LOCALE_PREFIX
Имя ключа в пределах приложения передает пакет, названный возвратом из Application#getMessageBundle чье значение является префиксом локали, используемым, чтобы найти, что упакованный ресурс возвращается из createResource(java.lang.String) (или одна из его разновидностей).
public static final java.lang.String RESOURCE_EXCLUDES_PARAM_NAME
ServletContext параметр init, с которым консультируются handleResourceRequest(javax.faces.context.FacesContext) сказать, какие виды ресурсов никогда не должны подаваться в ответ на запрос ресурса. Значение этого параметра является одинарным интервалом разделенный список расширений файла, включая ведущий '.' символ (без кавычек). Если не определенный, значение по умолчанию, данное в значении RESOURCE_EXCLUDES_DEFAULT_VALUE постоянный используется. Если вручную определено, данное значение полностью переопределяет значение по умолчанию один и не добавляет его.
public static final java.lang.String RESOURCE_EXCLUDES_DEFAULT_VALUE
Значение по умолчанию для RESOURCE_EXCLUDES_PARAM_NAME init param.
| Деталь конструктора |
|---|
public ResourceHandler()
| Деталь метода |
|---|
public abstract Resource createResource(java.lang.String resourceName)
Создайте экземпляр Resource учитывая параметр resourceName. Тип контента ресурса получается, передавая resourceName к ExternalContext.getMimeType(java.lang.String)
Алгоритм, определенный в разделе JSF.2.6.1.4 документа прозы спецификации, соединенного в сводке краткого обзора, должен быть выполнен, чтобы создать Resource
resourceName - имя ресурса. Resource экземпляр, подходящий для использования в кодировании или декодировании именованного ресурса. java.lang.NullPointerException - если resourceName null.
public abstract Resource createResource(java.lang.String resourceName,
java.lang.String libraryName)
Создайте экземпляр Resource с resourceName, данным значением параметра resourceName это - элемент библиотеки, названной параметром libraryName. Тип контента ресурса получается, передавая resourceName к ExternalContext.getMimeType(java.lang.String).
Алгоритм, определенный в разделе JSF.2.6.1.4 документа прозы спецификации, соединенного в сводке краткого обзора, должен быть выполнен, чтобы создать Resource
resourceName - имя ресурса.libraryName - имя библиотеки, в которой находится этот ресурс, может быть null., Возможно, не включает относительные пути, такой как ".. /".
Resource экземпляр, подходящий для использования в кодировании или декодировании именованного ресурса. NullPointerException - если resourceName null
public abstract Resource createResource(java.lang.String resourceName,
java.lang.String libraryName,
java.lang.String contentType)
Создайте экземпляр Resource с resourceName, данным значением параметра resourceName это - элемент библиотеки, названной параметром libraryName это утверждает, что дало тип контента параметром content-type.
Алгоритм, определенный в разделе JSF.2.6.1.4 документа прозы спецификации, соединенного в сводке краткого обзора, должен быть выполнен, чтобы создать Resource
resourceName - имя ресурса.libraryName - имя библиотеки, в которой находится этот ресурс, может быть null., Возможно, не включает относительные пути, такой как ".. /".contentType - контент пантомимы, что это Resource экземпляр возвратится из Resource#getContentType. Если значение null, Тип контента ресурса получается, передавая resourceName к ExternalContext.getMimeType(java.lang.String)
Resource экземпляр, подходящий для использования в кодировании или декодировании именованного ресурса. NullPointerException - если resourceName null.public abstract boolean libraryExists(java.lang.String libraryName)
Возвратиться true если библиотеку ресурса называет параметр libraryName может быть найден.
public abstract void handleResourceRequest(FacesContext context)
throws java.io.IOException
Этот метод определяет контракт для того, чтобы удовлетворить запросы ресурса. От этого метода вызывают FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) после того, как тот метод решает, что текущий запрос является запросом ресурса, вызывая isResourceRequest(javax.faces.context.FacesContext). Таким образом, handleResourceRequest может предположить, что текущий запрос является запросом ресурса.
Реализация по умолчанию должна реализовать алгоритм, семантически идентичный следующему алгоритму.
Для обсуждения, во всех случаях, когда код состояния должен быть установлен, эта спецификация переговоры только использование API Сервлета, но подразумевается, что в среде портлета соответствующий эквивалентный API должен использоваться.Если resourceIdentifier заканчивается каким-либо из расширений, перечисленных в значении RESOURCE_EXCLUDES_PARAM_NAME параметр init, HttpServletRequest.SC_NOT_FOUND к нужно передать HttpServletResponse.setStatus(), тогда handleResourceRequest должен сразу возвратиться.
Извлеките resourceName из resourceIdentifier, беря подстроку resourceIdentifier, который запускается в и идет до конца resourceIdentifier. Если никакой resourceName не может быть извлечен, RESOURCE_IDENTIFIER.length() + 1HttpServletRequest.SC_NOT_FOUND к нужно передать HttpServletResponse.setStatus(), тогда handleResourceRequest должен сразу возвратиться.
Извлеките libraryName из запроса, смотря в карте параметра запроса для записи под ключом "ln" без кавычек. Если найдено, используйте его значение в качестве libraryName.
Если resourceName и libraryName присутствуют, вызвать createResource(String, String) создать Resource. Если только resourceName присутствует, вызвать createResource(String) создать Resource. Если Resource не может быть успешно создан, HttpServletRequest.SC_NOT_FOUND к нужно передать HttpServletResponse.setStatus(), тогда handleResourceRequest должен сразу возвратиться.
Вызвать Resource#userAgentNeedsUpdate. Если этот метод возвращает false, HttpServletRequest.SC_NOT_MODIFIED к нужно передать HttpServletResponse.setStatus(), тогда handleResourceRequest должен сразу возвратиться.
Передайте результат Resource#getContentType к HttpServletResponse.setContentType.
Вызвать Resource#getResponseHeaders. Для каждой записи в этом Map, вызвать HttpServletResponse.setHeader(), передача ключа как первый параметр и значение как второй параметр.
Вызвать Resource#getInputStream и подайте байты ресурса к ответу.
Вызвать HttpServletResponse.setContentLength() передача количества байта ресурса.
Если IOException бросается во время любого из предыдущих шагов, зарегистрируйте дескриптивное, локализованное сообщение, включая resourceName и libraryName (если есть). Затем, HttpServletRequest.SC_NOT_FOUND к нужно передать HttpServletResponse.setStatus(), тогда handleResourceRequest должен сразу возвратиться.
Во всех случаях в этом методе любые потоки, каналы, сокеты, или любые другие ресурсы IO должны быть закрыты перед этим методом возвраты.
context - FacesContext для этого запроса java.io.IOExceptionpublic abstract boolean isResourceRequest(FacesContext context)
Возвратиться true если текущий запрос является запросом ресурса. Этим методом вызывают FacesServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) определить, является ли этот запрос запросом представления или запросом ресурса.
context - FacesContext для этого запроса true если текущий запрос является запросом ресурса, false иначе.public abstract java.lang.String getRendererTypeForResourceName(java.lang.String resourceName)
Возвратитесь renderer-type для a Renderer это способно к рендерингу этого ресурса. Реализация по умолчанию должна возвращаемые значения согласно следующей таблице. Если нет renderer-type может быть определен, null должен быть возвращен.
| имя ресурса в качестве примера | тип средства рендеринга |
|---|---|
| mycomponent.js | javax.faces.resource.Script |
| mystyle.css | javax.faces.resource.Stylesheet |
|
|||||||||
| ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
| СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД | ||||||||
Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается
Сгенерированный на 10-February-2011 12:41