public abstract class Resource extends ViewResource
Resource
の インスタンスは、クライアントからのリソースリクエストに応じて提供されるアーティファクトの Java オブジェクト表現です。Resource
のインスタンスは通常、ResourceHandler.createResource(java.lang.String)
の呼び出しを介して作成および初期化されます。詳細については、ResourceHandler
のドキュメントを参照してください。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | COMPONENT_RESOURCE_KEY この定数は、コンポーネントをその |
コンストラクターと説明 |
---|
Resource() |
修飾子と型 | メソッドと説明 |
---|---|
StringSE | getContentType() このリソースの MIME content-type を返します。 |
abstract InputStreamSE | getInputStream() 現在のリクエストが(ある、 |
StringSE | getLibraryName() このリソースの libraryName を返します。 |
abstract StringSE | getRequestPath() このリソースへのパスを返します。ブラウザーがリソースを含むビューのベース URI に対してそれを解決し、結果の完全修飾 URL に GET リクエストを発行すると、リソースのバイトがレスポンスとして返されます。 |
StringSE | getResourceName() このリソースの resourceName を返します。 |
abstract MapSE<StringSE, StringSE> | getResponseHeaders()
|
abstract URLSE | getURL() このリソースインスタンスを参照する実際の |
void | setContentType(StringSE contentType) このリソースの MIME content-type を設定します。 |
void | setLibraryName(StringSE libraryName) このリソースの libraryName を設定します。 |
void | setResourceName(StringSE resourceName) このリソースの resourceName を設定します。 |
StringSE | toString()
|
abstract boolean | userAgentNeedsUpdate(FacesContext context) このリソースをリクエストするユーザーエージェントが更新を必要とする場合、 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public StringSE getContentType()
このリソースの MIME content-type を返します。
public void setContentType(StringSE contentType)
このリソースの MIME content-type を設定します。デフォルトの実装では、引数の検証は行われません。
contentType
- このリソースの MIME コンテンツ型。デフォルトの実装では、null
をパラメーターとして受け入れる必要があります。public StringSE getLibraryName()
このリソースの libraryName を返します。null
の場合もあります。リソースの libraryName は、「リソースライブラリ」のメンバーシップを示すオプションの文字列です。同じ libraryName を持つすべてのリソースは、同じ「リソースライブラリ」に属します。「リソースライブラリ」の概念により、同じ resourceName を持つリソースを明確に区別できます。詳細については、ResourceHandler
を参照してください。
null
の場合もあります。public void setLibraryName(StringSE libraryName)
このリソースの libraryName を設定します。
libraryName
- このリソースの libraryName。デフォルトの実装では、libraryName の null
を受け入れる必要があります。public StringSE getResourceName()
このリソースの resourceName を返します。null になることはありません。すべての Resource
インスタンスには resourceName が必要です。
public void setResourceName(StringSE resourceName)
このリソースの resourceName を設定します。
resourceName
- null 以外の文字列。NullPointerExceptionSE
- 引数 resourceName
が null の場合。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
- 現在のリクエストがリソースリクエストでない場合。public abstract MapSE<StringSE,StringSE> getResponseHeaders()
ResourceHandler.handleResourceRequest(jakarta.faces.context.FacesContext)
中にレスポンスヘッダーとしてエントリが送信される可変 Map<String, String>
を返します。このマップのエントリは、単一のリクエストの範囲を超えて存続してはなりません。リソースが提供された後にマップに加えられた変更は、ランタイムによって無視されます。
Map<String, String>
。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()
+ facesServletMapping
URL クエリ文字列に含めるのに適した、& で区切られた名前 = 値のペアの文字列である 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)
に渡すことにより、ポートレットを安全にします。
public abstract URLSE getURL()
このリソースインスタンスを参照する実際の URL
インスタンスを返します。
ViewResource
の getURL
URL
インスタンスを返します。public StringSE toString()
getRequestPath()
を呼び出し、結果を返します。
ObjectSE
の toStringSE
getRequestPath()
を呼び出し、結果を返します。public abstract boolean userAgentNeedsUpdate(FacesContext context)
このリソースをリクエストしているユーザーエージェントが更新を必要とする場合は、true
を返します。このリクエストに If-Modified-Since
HTTP ヘッダーが使用できる場合は、IETF RFC 2616 のセクション 14.25 で指定されているように、その値を調べて結果を判別する必要があります。ユーザーエージェントがこのリソースの更新を必要としない場合、false
を返します。
context
- Faces コンテキスト。true
または false
。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.