クラス 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 StringSECOMPONENT_RESOURCE_KEYこの定数は、コンポーネントをそのResourceインスタンスに関連付けるために、複合コンポーネントのコンポーネント属性マップのキーとして使用されます。
コンストラクターの概要
コンストラクター コンストラクター 説明 Resource()
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 StringSEgetContentType()このリソースの MIME content-type を返します。abstract InputStreamSEgetInputStream()現在のリクエストが(ある、ResourceHandler.isResourceRequest(jakarta.faces.context.FacesContext)戻りのtrue)リソースリクエストである場合、リソースのバイトを含むInputStreamを返します。StringSEgetLibraryName()このリソースの libraryName を返します。abstract StringSEgetRequestPath()このリソースへのパスを返します。ブラウザーがリソースを含むビューのベース URI に対してそれを解決し、結果の完全修飾 URL に GET リクエストを発行すると、リソースのバイトがレスポンスとして返されます。StringSEgetResourceName()このリソースの resourceName を返します。abstract MapSE<StringSE,StringSE>getResponseHeaders()ResourceHandler.handleResourceRequest(jakarta.faces.context.FacesContext)中にレスポンスヘッダーとして送信されるエントリを持つ変更可能なMap<String, String>を返します。abstract URLSEgetURL()このリソースインスタンスを参照する実際のURLインスタンスを返します。voidsetContentType(StringSE contentType)このリソースの MIME content-type を設定します。voidsetLibraryName(StringSE libraryName)このリソースの libraryName を設定します。voidsetResourceName(StringSE resourceName)このリソースの resourceName を設定します。StringSEtoString()getRequestPath()を呼び出し、結果を返します。abstract booleanuserAgentNeedsUpdate(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()を使用)。そこからプレフィックスマッピングまたは拡張マッピングを選択します。そのようなマッピングが見つからない場合は、IllegalStateExceptionSE をスローします。そのようなマッピングが見つかった場合は、そのマッピングから*文字を削除し、それを新しい 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-SinceHTTP ヘッダーが使用できる場合は、IETF RFC 2616 のセクション 14.25 で指定されているように、その値を調べて結果を判別する必要があります。ユーザーエージェントがこのリソースの更新を必要としない場合、falseを返します。- パラメーター:
context- Faces コンテキスト。- 戻り値:
- ユーザーエージェントがこのリソースの更新を必要とするかどうかに応じて、
trueまたはfalse。