クラス ResourceHandler
- java.lang.ObjectSE
-
- jakarta.faces.application.ResourceHandler
- 既知の直属サブクラス
ResourceHandlerWrapper
public abstract class ResourceHandler extends ObjectSE
ResourceHandler は、
UIComponent
およびRenderer
インスタンス、およびViewDeclarationLanguage
がResource
インスタンスを参照できるランタイム API です。このクラスの実装はスレッドセーフでなければなりません。パッケージングリソース
ResourceHandler は、リソースのパスベースのパッケージ化規則を定義します。
ResourceHandler
のデフォルトの実装は、クラスパスまたは Web アプリケーションルートでのリソースのパッケージ化をサポートする必要があります。パッケージングリソースの規範的な仕様については、Jakarta Faces Specification Document のセクション 2.6.1「パッケージングリソース」を参照してください。簡単に言えば、デフォルトの実装は、パスの Web アプリケーションルートでパッケージ化リソースをサポートする必要があります
resources/<resourceIdentifier>
Web アプリのルートに対して相対的です。「リソース」はデフォルトの場所ですが、この場所は
WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME
<context-param>
の値によって変更できます。デフォルトの実装では、クラスパスにパッケージ化されたリソースは JAR エントリ名に存在する必要があります
META-INF/resources/<resourceIdentifier>
jar ファイル内にパッケージ化された Faces Flow の場合、クラスパスにパッケージ化されたリソースは jar エントリ名に存在する必要があります
META-INF/flows/<resourceIdentifier>
<resourceIdentifier>
は、次のように指定されたいくつかのセグメントで構成されています。[localePrefix/][libraryName/][libraryVersion/]resourceName[/resourceVersion]
resourceIdentifier 内のセグメントはいずれも、"../otherLibraryName" などの相対パスであってはなりません。実装では、JAR パッケージ化の場合、
libraryVersion
およびresourceVersion
セグメントをサポートする必要はありません。必須のセグメントは resourceName のみであることに注意してください。
エンコーディングリソース
ビューリクエストの処理中に、Jakarta Server Face ランタイムが呼び出されて、後続のリソースリクエストを行うようにユーザーエージェントに指示するような方法でリソースをエンコードすることができます。この動作は、リソースレンダラーの 1 つ(
ScriptRenderer
、StylesheetRenderer
、ImageRenderer
)によって調整されます。ScriptRenderer
、StylesheetRenderer
、ImageRenderer
はすべてResource.getRequestPath()
を呼び出して、リソースのエンコードされた URI を取得します。完全な仕様については、Resource.getRequestPath()
および標準 HTML RenderKit 仕様を参照してください。このリソースの使用は、VDL リソースに対応するリソースには適用されません。
リソースのデコード
リソースリクエストの処理中に、Jakarta Faces ランタイムが呼び出され、リソースのバイトをユーザーエージェントに提供するようにリソースをデコードします。この動作は、
Resource.getInputStream()
を呼び出してリソースのバイトを取得するhandleResourceRequest(jakarta.faces.context.FacesContext)
によって調整されます。完全な仕様については、handleResourceRequest(jakarta.faces.context.FacesContext)
を参照してください。このリソースの使用は、VDL リソースに対応するリソースには適用されません。
- 導入:
- 2.0
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static StringSE
FACES_SCRIPT_LIBRARY_NAME
Jakarta Faces スクリプトリソースのライブラリ名。static StringSE
FACES_SCRIPT_RESOURCE_NAME
Jakarta Faces スクリプトリソースのリソース名。static StringSE
JSF_SCRIPT_LIBRARY_NAME
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。代わりにFACES_SCRIPT_LIBRARY_NAME
を使用してください。static StringSE
JSF_SCRIPT_RESOURCE_NAME
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。代わりにFACES_SCRIPT_RESOURCE_NAME
を使用してください。static StringSE
LOCALE_PREFIX
Application.getMessageBundle()
からの戻り値で指定されたアプリケーションメッセージバンドル内のキーの名前。その値は、createResource(java.lang.String)
(またはそのバリアントの 1 つ)から返すパッケージ化されたリソースを見つけるために使用されるロケールプレフィックスです。static StringSE
RESOURCE_CONTRACT_XML
このファイルは、リソースライブラリ契約を含む jar ファイルのMETA-INF/contracts/<contractName>/
に配置する必要があります。<contractName>
は契約の名前です。static StringSE
RESOURCE_EXCLUDES_DEFAULT_VALUE
RESOURCE_EXCLUDES_PARAM_NAME
init param のデフォルト値。static StringSE
RESOURCE_EXCLUDES_PARAM_NAME
handleResourceRequest(jakarta.faces.context.FacesContext)
によって調べられたServletContext
init パラメーターは、リソースリクエストに応じてどの種類のリソースを提供してはならないかを示します。static StringSE
RESOURCE_IDENTIFIER
Resource.getRequestPath()
は、この定数の値を URI のプレフィックスとして返します。static StringSE
WEBAPP_CONTRACTS_DIRECTORY_PARAM_NAME
WEBAPP_CONTRACTS_DIRECTORY_PARAM_NAME
の値に等しいパラメーター名を持つ<context-param>
が存在する場合、ランタイムはその値を、リソースライブラリ契約が配置される Web アプリのルートに対する相対パスとして解釈する必要があります。static StringSE
WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME
WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME
の値に等しいパラメーター名を持つ<context-param>
が存在する場合、ランタイムはその値を、リソースが配置される Web アプリのルートを基準としたパスとして解釈する必要があります。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ResourceHandler()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract Resource
createResource(StringSE resourceName)
引数resourceName
を指定してViewResource
のインスタンスを作成します。abstract Resource
createResource(StringSE resourceName, StringSE libraryOrContractName)
引数libraryName
で指定されたライブラリのメンバーである引数resourceName
の値によって指定された resourceName を使用して、Resource
のインスタンスを作成します。abstract Resource
createResource(StringSE resourceName, StringSE libraryName, StringSE contentType)
引数content-type
によって指定されたコンテンツ型を持つと主張する引数libraryName
によって指定されたライブラリのメンバーである引数resourceName
の値によって指定された resourceName を使用して、Resource
のインスタンスを作成します。Resource
createResourceFromId(StringSE resourceId)
引数resourceId
を指定してResource
のインスタンスを作成します。ViewResource
createViewResource(FacesContext context, StringSE resourceName)
引数resourceName
を指定してResource
のインスタンスを作成します。これには "/" 文字を含めることができます。abstract StringSE
getRendererTypeForResourceName(StringSE resourceName)
このリソースをレンダリングできるRenderer
のrenderer-type
を返します。StreamSE<StringSE>
getViewResources(FacesContext facesContext, StringSE path, int maxDepth, ResourceVisitOption... options)
指定された初期パスをルートとするリソースツリーをたどることによって、遅延して入力された可能性があるStream
を返します。StreamSE<StringSE>
getViewResources(FacesContext facesContext, StringSE path, ResourceVisitOption... options)
指定された初期パスをルートとするリソースツリーをたどることによって、遅延して入力された可能性があるStream
を返します。abstract void
handleResourceRequest(FacesContext context)
このメソッドは、リソースリクエストを満たすための規約を指定します。boolean
isResourceRendered(FacesContext context, StringSE resourceName, StringSE libraryName)
指定されたリソースとライブラリ名で識別されるリソースがレンダリングされているかどうかを返します。abstract boolean
isResourceRequest(FacesContext context)
現在のリクエストがリソースリクエストである場合は、true
を返します。boolean
isResourceURL(StringSE url)
abstract boolean
libraryExists(StringSE libraryName)
引数libraryName
で指定されたリソースライブラリが見つかった場合は、true
を返します。void
markResourceRendered(FacesContext context, StringSE resourceName, StringSE libraryName)
指定されたリソースとライブラリ名で識別されるリソースをレンダリング済みとしてマークします。
フィールドの詳細
RESOURCE_IDENTIFIER
public static final StringSE RESOURCE_IDENTIFIER
Resource.getRequestPath()
は、この定数の値を URI のプレフィックスとして返します。handleResourceRequest(jakarta.faces.context.FacesContext)
は、リクエスト URI 内でこの定数の値を検索して、リクエストがリソースリクエストであるかビューリクエストであるかを判別します。- 関連事項:
- 定数フィールド値
JSF_SCRIPT_RESOURCE_NAME
@DeprecatedSE(since="4.0", forRemoval=true) public static final StringSE JSF_SCRIPT_RESOURCE_NAME
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。代わりにFACES_SCRIPT_RESOURCE_NAME
を使用してください。Jakarta Faces スクリプトリソースのリソース名。
- 導入:
- 2.3
- 関連事項:
- 定数フィールド値
FACES_SCRIPT_RESOURCE_NAME
public static final StringSE FACES_SCRIPT_RESOURCE_NAME
Jakarta Faces スクリプトリソースのリソース名。
- 導入:
- 2.3
- 関連事項:
- 定数フィールド値
JSF_SCRIPT_LIBRARY_NAME
@DeprecatedSE(since="4.0", forRemoval=true) public static final StringSE JSF_SCRIPT_LIBRARY_NAME
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。代わりにFACES_SCRIPT_LIBRARY_NAME
を使用してください。Jakarta Faces スクリプトリソースのライブラリ名。
- 導入:
- 2.3
- 関連事項:
- 定数フィールド値
FACES_SCRIPT_LIBRARY_NAME
public static final StringSE FACES_SCRIPT_LIBRARY_NAME
Jakarta Faces スクリプトリソースのライブラリ名。
- 導入:
- 2.3
- 関連事項:
- 定数フィールド値
RESOURCE_CONTRACT_XML
public static final StringSE RESOURCE_CONTRACT_XML
このファイルは、リソースライブラリ契約を含む jar ファイルの
META-INF/contracts/<contractName>/
に配置する必要があります。<contractName>
は契約の名前です。jar ファイルに複数の契約が含まれている場合は、マーカーファイルがそれぞれに存在する必要があります。その場所に配置する必要のあるファイルの名前については、「定数フィールド値」を参照してください。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME
public static final StringSE WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME
WEBAPP_RESOURCES_DIRECTORY_PARAM_NAME
の値と等しいパラメーター名を持つ<context-param>
が存在する場合、ランタイムはその値を、リソースが配置される Web アプリルートを基準としたパスとして解釈する必要があります。このパラメーター値は "/" で始まることはできませんが、"/" 文字が含まれている場合があります。そのような<context-param>
が存在しない場合、またはその値が無効な場合は、引用符なしの値 "resources" をランタイムで値として使用する必要があります。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
WEBAPP_CONTRACTS_DIRECTORY_PARAM_NAME
public static final StringSE WEBAPP_CONTRACTS_DIRECTORY_PARAM_NAME
WEBAPP_CONTRACTS_DIRECTORY_PARAM_NAME
の値と等しいパラメーター名を持つ<context-param>
が存在する場合、ランタイムはその値を、リソースライブラリ契約が配置される Web アプリルートを基準としたパスとして解釈する必要があります。このパラメーター値は "/" で始まることはできませんが、"/" 文字が含まれている場合があります。そのような<context-param>
が存在しない場合、またはその値が無効である場合、値 "contracts" は、引用符なしで、ランタイムによって値として使用される必要があります。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
LOCALE_PREFIX
public static final StringSE LOCALE_PREFIX
Application.getMessageBundle()
からの戻り値で指定されたアプリケーションメッセージバンドル内のキーの名前。その値は、createResource(java.lang.String)
(またはそのバリアントの 1 つ)から返すパッケージ化されたリソースを見つけるために使用されるロケールプレフィックスです。- 関連事項:
- 定数フィールド値
RESOURCE_EXCLUDES_PARAM_NAME
public static final StringSE RESOURCE_EXCLUDES_PARAM_NAME
handleResourceRequest(jakarta.faces.context.FacesContext)
が参照するServletContext
init パラメーターは、リソースリクエストにレスポンスして決して提供されてはならないリソースの種類を示します。このパラメーターの値は、先頭の "." を含む、ファイル拡張子の単一のスペースで区切られたリストです。文字(引用符なし)。指定しない場合、RESOURCE_EXCLUDES_DEFAULT_VALUE
定数の値で指定されたデフォルト値が使用されます。手動で指定した場合、指定された値はデフォルトの値を完全に上書きし、補足しません。- 関連事項:
- 定数フィールド値
RESOURCE_EXCLUDES_DEFAULT_VALUE
public static final StringSE RESOURCE_EXCLUDES_DEFAULT_VALUE
RESOURCE_EXCLUDES_PARAM_NAME
init param のデフォルト値。- 関連事項:
- 定数フィールド値
メソッドの詳細
createResource
public abstract Resource createResource(StringSE resourceName)
引数
resourceName
を指定してViewResource
のインスタンスを作成します。リソースのコンテンツ型は、resourceName をExternalContext.getMimeType(java.lang.String)
に渡すことによって導出されます。Jakarta Faces Specification Document のセクション 2.6.1.4「ローカライズおよびバージョン管理されたリソースの ライブラリ」で指定されたアルゴリズムを実行して、
Resource
を作成する必要があります。新しい要件は、仕様のバージョン 2.2 で導入されました。歴史的な理由から、このメソッドは、引数resourceName
がlibraryName/resourceName
の形式の場合、resourceName
に "/" 文字が含まれている場合でも正しく動作します。- パラメーター:
resourceName
- リソースの名前。- 戻り値:
- 新しく作成された
Resource
インスタンス。指定されたリソースのエンコードまたはデコードでの使用に適しています。 - 例外:
NullPointerExceptionSE
-resourceName
がnull
の場合。
createViewResource
public ViewResource createViewResource(FacesContext context, StringSE resourceName)
引数
resourceName
を指定してResource
のインスタンスを作成します。これには、"/" 文字を含めることができます。ViewDeclarationLanguage
は、ファイルシステムなどの永続ストアからビューをロードする必要がある場合にこのメソッドを呼び出します。このメソッドはcreateResource(java.lang.String)
と同等の機能ですが、VDL ビューをロードする必要があるすべてのコールサイトはこのメソッドを使用する必要があります。これにより、ビューのロードのみに影響を与えるためにResourceHandler
を装飾するクラスは、他の種類の処理に影響を与えることなくそうすることができます。スクリプトやスタイルシートなどのリソース。このメソッドを呼び出す前に、FacesContext
が存在している必要があります。仕様の以前のリビジョンとの互換性を維持するには、createResource(java.lang.String)
を呼び出すデフォルトの実装を提供する必要があります。デフォルトの実装では、次の場所でこの順序でリソースを検索する必要があります。
リソースライブラリ契約の検討 (Jakarta Faces Specification Document セクション 2.7 " リソースライブラリ契約 " で指定された場所)。
Web アプリのルートを検討します。
Faces フローを考慮します (Jakarta Faces Specification Document セクション 11.3.3 "Faces Flows" で指定された場所で)。
FacesContext.getResourceLibraryContracts()
を呼び出します。結果が非 null
で空でない場合は、リスト内の各値について、その値をリソースライブラリ契約の名前として扱います。引数resoureName
がリソースライブラリ契約のリソースとして存在する場合は、それを返します。それ以外の場合は、見つかった場合は、リソース(リソースライブラリ契約にない)を返します。それ以外の場合は、null
を返します。- パラメーター:
context
- このリクエストのFacesContext
resourceName
-ViewDeclarationLanguage
によってビューとして解釈されるリソースの名前。- 戻り値:
- 新しく作成された
ViewResource
インスタンス。ViewDeclarationLanguage
での使用に適しています。 - 例外:
NullPointerExceptionSE
-resourceName
がnull
の場合。- 導入:
- 2.2
getViewResources
public StreamSE<StringSE> getViewResources(FacesContext facesContext, StringSE path, int maxDepth, ResourceVisitOption... options)
指定された初期パスをルートとするリソースツリーをウォークすることにより、おそらく遅延して入力された
Stream
を返します。リソースツリーは幅優先でトラバースされます。ストリーム内の要素は、resourceName
パラメーターとしてcreateViewResource(jakarta.faces.context.FacesContext, java.lang.String)
に渡されたときにViewResource
を生成するビューリソース名です。maxDepth
パラメーターは、常にアクセスされる初期パスを超えてアクセスするディレクトリレベルの最大深度です。値は、指定された初期パスではなく、ルート(/
)を基準にしています。たとえば、maxDepth
=3
および初期パス/foo/
が与えられた場合、訪問は/foo/bar/
まで進みます。ここで、/
は深さ1
としてカウントされ、/foo/
は深さ2
としてカウントされ、/foo/bar/
は深さ3
としてカウントされます。初期パスの深さ以下の値は、初期パスのみが訪問されることを意味します。MAX_VALUE
SE の値を使用して、すべてのレベルにアクセスする必要があることを示すことができます。- パラメーター:
facesContext
- このリクエストのFacesContext
。path
- ビューリソースの検索を開始する最初のパスmaxDepth
- ルート(/
)から数えた、アクセスするネストされたディレクトリの絶対最大深度。options
- トラバーサルに影響を与えるオプション。これらの詳細については、ResourceVisitOption
を参照してください。- 戻り値:
- ビューリソース名の
Stream
SE - 導入:
- 2.3
getViewResources
public StreamSE<StringSE> getViewResources(FacesContext facesContext, StringSE path, ResourceVisitOption... options)
指定された初期パスをルートとするリソースツリーをウォークすることにより、おそらく遅延して入力された
Stream
を返します。リソースツリーは幅優先でトラバースされます。ストリーム内の要素は、resourceName
パラメーターとしてcreateViewResource(jakarta.faces.context.FacesContext, java.lang.String)
に渡されたときにViewResource
を生成するビューリソース名です。このメソッドは、それを呼び出すことは式を評価することと同等であるかのように機能します。
言い換えると、リソースツリーのすべてのレベルにアクセスします。getViewResources(facesContext, start, Integer.MAX_VALUE, options)
- パラメーター:
facesContext
- このリクエストのFacesContext
。path
- ビューリソースの検索を開始する最初のパスoptions
- トラバーサルに影響を与えるオプション。これらの詳細については、ResourceVisitOption
を参照してください。- 戻り値:
- ビューリソース名の
Stream
SE - 導入:
- 2.3
createResourceFromId
public Resource createResourceFromId(StringSE resourceId)
引数
resourceId
を指定してResource
のインスタンスを作成します。リソースのコンテンツ型は、resourceName をExternalContext.getMimeType(java.lang.String)
に渡すことによって導出されます。リソースは、Jakarta Faces Specification Document のセクション 2.6.1.3「リソース識別子」の仕様に従って識別する必要があります。仕様のバージョン 2.2 で新しい要件が導入されました。
- パラメーター:
resourceId
- リソースのリソース識別子。- 戻り値:
- 新しく作成された
Resource
インスタンス。指定されたリソースのエンコードまたはデコードでの使用に適しています。 - 例外:
NullPointerExceptionSE
-resourceId
がnull
の場合。- 導入:
- 2.2
createResource
public abstract Resource createResource(StringSE resourceName, StringSE libraryOrContractName)
引数
libraryName
で指定されたライブラリのメンバーである引数resourceName
の値によって指定された resourceName を使用して、Resource
のインスタンスを作成します。リソースのコンテンツ型は、resourceName をExternalContext.getMimeType(java.lang.String)
に渡すことによって導出されます。Jakarta Faces Specification Document のセクション 2.6.1.4「ローカライズおよびバージョン管理されたリソースの ライブラリ」で指定されたアルゴリズムを実行して、
Resource
. 新しい要件は、仕様のバージョン 2.2 で導入されましたを作成する必要があります。- パラメーター:
resourceName
- リソースの名前。libraryOrContractName
- このリソースが存在するライブラリ (または契約) の名前はnull
の場合があります。リソースライブラリの名前とリソースライブラリ契約が競合する場合は、リソースライブラリが優先されます。"../" などの相対パスを含めることはできません。- 戻り値:
- 新しく作成された
Resource
インスタンス。指定されたリソースのエンコードまたはデコードでの使用に適しています。 - 例外:
NullPointerExceptionSE
-resourceName
がnull
の場合
createResource
public abstract Resource createResource(StringSE resourceName, StringSE libraryName, StringSE contentType)
引数
content-type
によって指定されたコンテンツ型を持つと主張する引数libraryName
によって指定されたライブラリのメンバーである引数resourceName
の値によって指定された resourceName を使用して、Resource
のインスタンスを作成します。Jakarta Faces Specification Document のセクション 2.6.1.4「ローカライズおよびバージョン管理されたリソースの ライブラリ」で指定されたアルゴリズムを実行して、
Resource
. 新しい要件は、仕様のバージョン 2.2 で導入されましたを作成する必要があります。- パラメーター:
resourceName
- リソースの名前。libraryName
- このリソースが存在するライブラリの名前。null
の場合があります。 "../" などの相対パスを含めることはできません。contentType
- このResource
インスタンスがResource.getContentType()
から返す MIME コンテンツ。値がnull
の場合、リソースのコンテンツ型は resourceName をExternalContext.getMimeType(java.lang.String)
に渡すことによって導出されます。- 戻り値:
- 新しく作成された
Resource
インスタンス。指定されたリソースのエンコードまたはデコードでの使用に適しています。 - 例外:
NullPointerExceptionSE
-resourceName
がnull
の場合。
libraryExists
public abstract boolean libraryExists(StringSE libraryName)
引数
libraryName
で指定されたリソースライブラリが見つかった場合は、true
を返します。LOCALE_PREFIX
で定義されているように、このアプリケーションにlocalePrefix
がある場合は、最初にプレフィックス付きのライブラリを検索します。そのようなライブラリが見つからない場合は、プレフィックスなしのライブラリを検索します。これにより、開発者はファイルの重複を回避できます。例: 開発者が、ローカライズされたイメージリソースとローカライズされていないスクリプトリソースを含むリソースライブラリを必要とする場合を考えてみましょう。ライブラリの存在について両方の場所をチェックし、Jakarta Faces Specification Document のセクション 2.6.1.4「ローカライズおよびバージョン管理されたリソースの ライブラリ」のその他の仕様変更を行うことで、このシナリオが有効になります。- パラメーター:
libraryName
- ライブラリ名。- 戻り値:
- ライブラリが存在する場合は
true
、それ以外の場合はfalse
。 - 導入:
- 2.0
handleResourceRequest
public abstract void handleResourceRequest(FacesContext context) throws IOExceptionSE
このメソッドは、リソースリクエストを満たすための契約を指定します。このメソッドは、
isResourceRequest(jakarta.faces.context.FacesContext)
を呼び出すことにより、現在のリクエストがリソースリクエストであると判断した後、FacesServlet.service(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
から呼び出されます。handleResourceRequest
は、現在のリクエストがリソースリクエストであると想定する場合があります。デフォルトの実装では、次のアルゴリズムと意味的に同一のアルゴリズムを実装する必要があります。
議論のために、ステータスコードが設定されるすべての場合において、この仕様は Jakarta Servlet API のみを使用して話しますが、ポートレット環境では適切な同等の API を使用する必要があることを理解しています。resourceIdentifier が
RESOURCE_EXCLUDES_PARAM_NAME
初期化パラメーターの値にリストされているいずれかの拡張子で終了する場合、HttpServletRequest.SC_NOT_FOUND
をHttpServletResponse.setStatus()
に渡し、その後handleResourceRequest
を直ちに返す必要があります。リクエストパラメーターマップで引用符なしのキー "ln" のエントリを検索して、リクエストから libraryName を抽出します。見つかった場合は、その値を libraryName として使用します。
resourceName と libraryName が存在する場合は、
createResource(String, String)
を呼び出してResource
を作成します。resourceName のみが存在する場合は、createResource(String)
を呼び出してResource
を作成します。Resource
を正常に作成できない場合は、HttpServletRequest.SC_NOT_FOUND
をHttpServletResponse.setStatus()
に渡し、handleResourceRequest
をすぐに戻す必要があります。Resource.userAgentNeedsUpdate(jakarta.faces.context.FacesContext)
を呼び出します。このメソッドが false を返す場合、HttpServletRequest.SC_NOT_MODIFIED
をHttpServletResponse.setStatus()
に渡す必要があり、次にhandleResourceRequest
をすぐに返す必要があります。Resource.getContentType()
の結果をHttpServletResponse.setContentType.
に渡しますResource.getResponseHeaders()
を呼び出します。このMap
の各エントリについて、HttpServletResponse.setHeader()
を呼び出し、最初の引数としてキーを渡し、2 番目の引数として値を渡します。Resource.getInputStream()
を呼び出し、リソースのバイトをレスポンスに提供します。リソースのバイトカウントを渡して
HttpServletResponse.setContentLength()
を呼び出します。前のいずれかの手順で
IOException
がスローされた場合は、resourceName および libraryName (存在する場合) を含む、説明的でローカライズされたメッセージをログに記録します。次に、HttpServletRequest.SC_NOT_FOUND
をHttpServletResponse.setStatus()
に渡し、handleResourceRequest
をすぐに戻す必要があります。このメソッドのすべての場合において、このメソッドが戻る前に、ストリーム、チャネル、ソケット、その他の IO リソースを閉じる必要があります。
- パラメーター:
context
- このリクエストのFacesContext
- 例外:
IOExceptionSE
- I/O エラーが発生したとき。
isResourceRequest
public abstract boolean isResourceRequest(FacesContext context)
現在のリクエストがリソースリクエストの場合は、
true
を返します。このメソッドはFacesServlet.service(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
によって呼び出され、このリクエストがビューリクエストであるかリソースリクエストであるかを判別します。- パラメーター:
context
- このリクエストのFacesContext
- 戻り値:
- 現在のリクエストがリソースリクエストの場合は
true
、それ以外の場合はfalse
。
isResourceURL
public boolean isResourceURL(StringSE url)
引数
url
に定数RESOURCE_IDENTIFIER
の値で指定された文字列が含まれている場合は、true
を返します。それ以外の場合は、false を返します。- パラメーター:
url
-RESOURCE_IDENTIFIER
の存在をインスペクションする URL。- 戻り値:
- これがリソース URL の場合は
true
、それ以外の場合はfalse
。 - 例外:
NullPointerExceptionSE
- 引数の URL がnull
の場合。
getRendererTypeForResourceName
public abstract StringSE getRendererTypeForResourceName(StringSE resourceName)
このリソースをレンダリングできる
Renderer
のrenderer-type
を返します。デフォルトの実装は、次の表に従って値を返す必要があります。renderer-type
を判別できない場合は、null
を返却する必要があります。レンダラー型のマッピングへのリソース名 リソース名の例 renderer-type mycomponent.js jakarta.faces.resource.Script
mystyle.css jakarta.faces.resource.Stylesheet
- パラメーター:
resourceName
- リソース名。- 戻り値:
- レンダラーの型。
markResourceRendered
public void markResourceRendered(FacesContext context, StringSE resourceName, StringSE libraryName)
指定されたリソースとライブラリ名で識別されるリソースをレンダリング済みとしてマークします。デフォルトの実装では、現在のビューのレンダリングレスポンスフェーズ中にリソースがすでにレンダリングされている場合に、
isResourceRendered(FacesContext, String, String)
がtrue
を返すようにする必要があります。- パラメーター:
context
- このリクエストのFacesContext
。resourceName
- リソースの名前。libraryName
- リソースが存在するライブラリの名前は、null
の場合があります。- 導入:
- 2.3
isResourceRendered
public boolean isResourceRendered(FacesContext context, StringSE resourceName, StringSE libraryName)
指定されたリソースとライブラリ名で識別されるリソースがレンダリングされているかどうかを返します。デフォルトの実装では、リソースが
markResourceRendered(FacesContext, String, String)
を介してレンダリングされたとマークされている場合、現在のビューのレンダリングレスポンスフェーズでtrue
を返す必要があります。- パラメーター:
context
- このリクエストのFacesContext
。resourceName
- リソースの名前。libraryName
- このリソースが存在するライブラリの名前は、null
の場合があります。- 戻り値:
- 指定されたリソースとライブラリ名で識別されるリソースがレンダリングされているかどうか。
- 導入:
- 2.3