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, waitSEpublic 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(javax.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(javax.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() を使用)。そこからプレフィックスマッピングまたは拡張マッピングを選択します。そのようなマッピングが見つからない場合は、IllegalStateExceptionSE をスローします。そのようなマッピングが見つかった場合は、そのマッピングから * 文字を削除し、それを新しい 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(javax.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 © 2019 Eclipse Foundation.
Use is subject to license terms.