クラス Resource
- java.lang.ObjectSE
-
- jakarta.faces.application.ViewResource
-
- jakarta.faces.application.Resource
- 既知の直属サブクラス
ResourceWrapper
public abstract class Resource extends ViewResource
Resource
の インスタンスは、クライアントからのリソースリクエストに応じて提供されるアーティファクトの Java オブジェクト表現です。Resource
のインスタンスは通常、ResourceHandler.createResource(java.lang.String)
の呼び出しを介して作成および初期化されます。詳細については、ResourceHandler
のドキュメントを参照してください。- 導入:
- 2.0
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static StringSE
COMPONENT_RESOURCE_KEY
この定数は、コンポーネントをそのResource
インスタンスに関連付けるために、複合コンポーネントのコンポーネント属性マップのキーとして使用されます。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 Resource()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 StringSE
getContentType()
このリソースの MIME content-type を返します。abstract InputStreamSE
getInputStream()
現在のリクエストが(ある、ResourceHandler.isResourceRequest(jakarta.faces.context.FacesContext)
戻りのtrue
)リソースリクエストである場合、リソースのバイトを含むInputStream
を返します。StringSE
getLibraryName()
このリソースの libraryName を返します。abstract StringSE
getRequestPath()
このリソースへのパスを返します。ブラウザーがリソースを含むビューのベース URI に対してそれを解決し、結果の完全修飾 URL に GET リクエストを発行すると、リソースのバイトがレスポンスとして返されます。StringSE
getResourceName()
このリソースの resourceName を返します。abstract MapSE<StringSE,StringSE>
getResponseHeaders()
ResourceHandler.handleResourceRequest(jakarta.faces.context.FacesContext)
中にレスポンスヘッダーとして送信されるエントリを持つ変更可能なMap<String, String>
を返します。abstract URLSE
getURL()
このリソースインスタンスを参照する実際のURL
インスタンスを返します。void
setContentType(StringSE contentType)
このリソースの MIME content-type を設定します。void
setLibraryName(StringSE libraryName)
このリソースの libraryName を設定します。void
setResourceName(StringSE resourceName)
このリソースの resourceName を設定します。StringSE
toString()
getRequestPath()
を呼び出し、結果を返します。abstract boolean
userAgentNeedsUpdate(FacesContext context)
このリソースをリクエストするユーザーエージェントが更新を必要とする場合、true
を返します。
メソッドの詳細
getContentType
public StringSE getContentType()
このリソースの MIME content-type を返します。
- 戻り値:
- このリソースの MIME コンテンツ型。
setContentType
public void setContentType(StringSE contentType)
このリソースの MIME content-type を設定します。デフォルトの実装では、引数の検証は行われません。
- パラメーター:
contentType
- このリソースの MIME コンテンツ型。デフォルトの実装では、null
をパラメーターとして受け入れる必要があります。
getLibraryName
public StringSE getLibraryName()
このリソースの libraryName を返します。
null
の場合もあります。リソースの libraryName は、「リソースライブラリ」のメンバーシップを示すオプションの文字列です。同じ libraryName を持つすべてのリソースは、同じ「リソースライブラリ」に属します。「リソースライブラリ」の概念により、同じ resourceName を持つリソースを明確に区別できます。詳細については、ResourceHandler
を参照してください。- 戻り値:
- このリソースの libraryName を返します。
null
の場合もあります。
setLibraryName
public void setLibraryName(StringSE libraryName)
このリソースの libraryName を設定します。
- パラメーター:
libraryName
- このリソースの libraryName。デフォルトの実装では、libraryName のnull
を受け入れる必要があります。
getResourceName
public StringSE getResourceName()
このリソースの resourceName を返します。null になることはありません。すべての
Resource
インスタンスには resourceName が必要です。- 戻り値:
- このリソースの resourceName を返します。null になることはありません。
setResourceName
public void setResourceName(StringSE resourceName)
このリソースの resourceName を設定します。
- パラメーター:
resourceName
- null 以外の文字列。- 例外:
NullPointerExceptionSE
- 引数resourceName
が null の場合。
getInputStream
public abstract InputStreamSE getInputStream() throws IOExceptionSE
現在のリクエストが(ある、
ResourceHandler.isResourceRequest(jakarta.faces.context.FacesContext)
戻りのtrue
)リソースリクエストである場合、リソースのバイトを含むInputStream
を返します。それ以外の場合は、IOException
をスローします。- 戻り値:
- リソースのバイトを含む
InputStream
リソースに存在する Jakarta Expression Language 式は、リソースのバイトを提供する前に評価する必要があります。ブラウザーとサーバーのキャッシュにより、リソースファイルの Jakarta Expression Language 式は、通常、リソースが最初に提供されたときに一度だけ評価されます。リクエストごとのデータを参照する Jakarta Expression Language 式を使用することは、このデータが古くなる可能性があるためお勧めできません。
- 例外:
IOExceptionSE
- 現在のリクエストがリソースリクエストでない場合。
getResponseHeaders
public abstract MapSE<StringSE,StringSE> getResponseHeaders()
ResourceHandler.handleResourceRequest(jakarta.faces.context.FacesContext)
中にレスポンスヘッダーとしてエントリが送信される可変Map<String, String>
を返します。このマップのエントリは、単一のリクエストの範囲を超えて存続してはなりません。リソースが提供された後にマップに加えられた変更は、ランタイムによって無視されます。- 戻り値:
- レスポンスに含まれるヘッダーの可変
Map<String, String>
。
getRequestPath
public abstract StringSE getRequestPath()
このリソースへのパスを返します。ブラウザーがリソースを含むビューのベース URI に対してそれを解決し、結果の完全修飾 URL に GET リクエストを発行すると、リソースのバイトがレスポンスとして返されます。
デフォルトの実装では、次のアルゴリズムを実装する必要があります。説明のために、このメソッドから返される結果を result と呼びます。
この Web アプリケーションのコンテキストルートを取得します (スラッシュで終わらない)。説明のために、これを contextRoot と呼びます。
FacesServlet
がプレフィックス (パス) マッピングされているか、拡張子がマッピングされているか、正確にマッピングされているか (Servlet.12.2 で定義)、およびマッピングの値 (拡張子マッピングの場合は先頭の '.' を含む) を検出します。説明のために、これは facesServletMapping になります。正確にマップされている場合、FacesServlet が正確な URL パターン
ResourceHandler.RESOURCE_IDENTIFIER
+getResourceName()
にマップされている場合に限り、結果は次のようになります。result = contextRoot +
ResourceHandler.RESOURCE_IDENTIFIER
+getResourceName()
正確にマップされていて、FacesServlet が正確な URL パターン
ResourceHandler.RESOURCE_IDENTIFIER
+getResourceName()
にマップされていない場合は、次のようにします。FacesServlet の既存のマッピングを取得します (例:
ServletRegistration.getMappings()
を使用)。そこからプレフィックスマッピングまたは拡張マッピングを選択します。そのようなマッピングが見つからない場合は、IllegalStateException
SE をスローします。そのようなマッピングが見つかった場合は、そのマッピングから*
文字を削除し、それを新しい facesServletMapping として取得し、プレフィックスがマップされている場合と拡張がマップされている場合に、以下に指定されているようにこのマッピングの評価を続行します。プレフィックスがマップされている場合、結果は
result = contextRoot + '/' + facesServletMapping +
ResourceHandler.RESOURCE_IDENTIFIER
+ '/' +getResourceName()
拡張機能がマップされている場合、結果は
result = contextRoot +
ResourceHandler.RESOURCE_IDENTIFIER
+getResourceName()
+ facesServletMappingURL クエリ文字列に含めるのに適した、& で区切られた名前 = 値のペアの文字列である resourceMetaData という文字列を構築します。
getLibraryName()
が非 null
を返す場合、resourceMetaData
には "ln =" +getLibraryName()
からの戻り値を含める必要がありますResourceHandler.LOCALE_PREFIX
で定義されているように、このアプリケーションにlocalePrefix
がある場合、resourceMetaData
には "loc =" +localePrefix
を含める必要があります。このリソースがリソースライブラリ契約に含まれている場合、
resourceMetaData
には "con =" + リソースライブラリ契約の名前を含める必要があります。結果に "?" + resourceMetaData を追加します。
結果を
ViewHandler.getResourceURL(jakarta.faces.context.FacesContext, java.lang.String)
に渡すことにより、ポートレットを安全にします。
- 戻り値:
- Faces レスポンスを送信するときにブラウザーに送信される、エンコードされたビューに含まれることを意図した、このリソースへのパス。
getURL
public abstract URLSE getURL()
このリソースインスタンスを参照する実際の
URL
インスタンスを返します。- 次で指定:
- クラス
ViewResource
のgetURL
- 戻り値:
- このリソースインスタンスを参照する実際の
URL
インスタンスを返します。
toString
public StringSE toString()
getRequestPath()
を呼び出し、結果を返します。- オーバーライド:
- クラス
ObjectSE
のtoString
- 戻り値:
getRequestPath()
を呼び出し、結果を返します。
userAgentNeedsUpdate
public abstract boolean userAgentNeedsUpdate(FacesContext context)
このリソースをリクエストしているユーザーエージェントが更新を必要とする場合は、
true
を返します。このリクエストにIf-Modified-Since
HTTP ヘッダーが使用できる場合は、IETF RFC 2616 のセクション 14.25 で指定されているように、その値を調べて結果を判別する必要があります。ユーザーエージェントがこのリソースの更新を必要としない場合、false
を返します。- パラメーター:
context
- Faces コンテキスト。- 戻り値:
- ユーザーエージェントがこのリソースの更新を必要とするかどうかに応じて、
true
またはfalse
。