クラス InternalResourceView
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、InitializingBean
、ApplicationContextAware
、ServletContextAware
、View
- 既知の直属サブクラス
JstlView
RequestDispatcher
EE を使用してリクエストを指定されたリソース URL に転送します。 このビューの URL は、RequestDispatcher の forward
または include
メソッドに適した、Web アプリケーション内のリソースを指定することになっています。
すでに含まれているリクエスト内またはすでにコミットされているレスポンス内で動作している場合、このビューは転送ではなくインクルードにフォールバックします。これは、ビューをレンダリングする前に response.flushBuffer()
(レスポンスをコミットする)を呼び出すことによって実施できます。
DispatcherServlet コンテキスト定義の観点から見ると、InternalResourceViewResolver
の一般的な使用箇所は次のようになります。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>ハンドラーから返されるすべてのビュー名は、デフォルトでこのビュークラスを使用して JSP リソース (例: "myView" → "/WEB-INF/jsp/myView.jsp") に変換されます。
フィールドサマリー
クラス org.springframework.web.servlet.view.AbstractView から継承されたフィールド
DEFAULT_CONTENT_TYPE
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
インターフェース org.springframework.web.servlet.View から継承されたフィールド
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
コンストラクターのサマリー
コンストラクター説明Bean として使用するコンストラクター。指定された URL で新しい InternalResourceView を作成します。InternalResourceView
(StringSE url, boolean alwaysInclude) 指定された URL で新しい InternalResourceView を作成します。メソッドのサマリー
修飾子と型メソッド説明protected void
exposeHelpers
(HttpServletRequestEE request) 各レンダリング操作に固有のヘルパーを公開します。protected RequestDispatcherEE
getRequestDispatcher
(HttpServletRequestEE request, StringSE path) フォワード / インクルードに使用する RequestDispatcher を取得します。protected boolean
ApplicationContext は、InternalResourceView には厳密には必要ありません。protected StringSE
prepareForRendering
(HttpServletRequestEE request, HttpServletResponseEE response) レンダリングの準備をし、転送する(または含める)リクエストディスパッチャーのパスを決定します。protected void
renderMergedOutputModel
(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) 指定されたモデルの内部リソースをレンダリングします。void
setAlwaysInclude
(boolean alwaysInclude) ビューに転送するのではなく、常にビューを含めるかどうかを指定します。void
setPreventDispatchLoop
(boolean preventDispatchLoop) 現在のハンドラーパスへのディスパッチを明示的に禁止するかどうかを設定します。protected boolean
useInclude
(HttpServletRequestEE request, HttpServletResponseEE response) RequestDispatcher のinclude
またはforward
メソッドのどちらを使用するかを決定します。クラス org.springframework.web.servlet.view.AbstractUrlBasedView から継承されたメソッド
afterPropertiesSet, checkResource, getUrl, isUrlRequired, setUrl, toString
クラス org.springframework.web.servlet.view.AbstractView から継承されたメソッド
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponse
クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
コンストラクターの詳細
InternalResourceView
public InternalResourceView()Bean として使用するコンストラクター。InternalResourceView
指定された URL で新しい InternalResourceView を作成します。- パラメーター:
url
- 転送先の URL- 関連事項:
InternalResourceView
指定された URL で新しい InternalResourceView を作成します。- パラメーター:
url
- 転送先の URLalwaysInclude
- ビューに転送するのではなく、常にビューを含めるかどうか
メソッドの詳細
setAlwaysInclude
public void setAlwaysInclude(boolean alwaysInclude) ビューに転送するのではなく、常にビューを含めるかどうかを指定します。デフォルトは "false" です。転送が可能であっても、このフラグをオンにしてサーブレットインクルードの使用を強制します。
setPreventDispatchLoop
public void setPreventDispatchLoop(boolean preventDispatchLoop) 現在のハンドラーパスへのディスパッチを明示的に禁止するかどうかを設定します。デフォルトは "false" です。現在のハンドラーパスへのディスパッチが根本的なエラーである、コンベンショナルベースのビューの場合は、これを "true" に切り替えます。
isContextRequired
protected boolean isContextRequired()ApplicationContext は、InternalResourceView には厳密には必要ありません。- オーバーライド:
- クラス
WebApplicationObjectSupport
のisContextRequired
- 関連事項:
renderMergedOutputModel
protected void renderMergedOutputModel(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE指定されたモデルの内部リソースをレンダリングします。これには、モデルをリクエスト属性として設定することが含まれます。- 次で指定:
- クラス
AbstractView
のrenderMergedOutputModel
- パラメーター:
model
- 静的な属性よりも動的な値が優先される、結合された出力マップ(非null
)request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 例外:
ExceptionSE
- レンダリングに失敗した場合
exposeHelpers
各レンダリング操作に固有のヘルパーを公開します。これは、異なるレンダリング操作が互いのコンテキストなどを上書きできないようにするために必要です。renderMergedOutputModel(Map, HttpServletRequest, HttpServletResponse)
によって呼び出されます。デフォルトの実装は空です。このメソッドをオーバーライドして、カスタムヘルパーをリクエスト属性として追加できます。- パラメーター:
request
- 現在の HTTP リクエスト- 例外:
ExceptionSE
- 属性の追加中に致命的なエラーが発生した場合- 関連事項:
prepareForRendering
protected StringSE prepareForRendering(HttpServletRequestEE request, HttpServletResponseEE response) throws ExceptionSE レンダリングの準備をし、転送する(または含める)リクエストディスパッチャーのパスを決定します。この実装は単に構成された URL を返します。サブクラスはこれをオーバーライドして、レンダリングするリソースを決定できます。通常は、URL を別の方法で解釈します。
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 戻り値:
- 使用するリクエストディスパッチャーパス
- 例外:
ExceptionSE
- 準備が失敗した場合- 関連事項:
getRequestDispatcher
@Nullable protected RequestDispatcherEE getRequestDispatcher(HttpServletRequestEE request, StringSE path) フォワード / インクルードに使用する RequestDispatcher を取得します。デフォルトの実装では、単に
ServletRequest.getRequestDispatcher(String)
EE を呼び出します。サブクラスでオーバーライドできます。- パラメーター:
request
- 現在の HTTP リクエストpath
- ターゲット URL (prepareForRendering(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
から返される)- 戻り値:
- 対応する RequestDispatcher
useInclude
RequestDispatcher のinclude
またはforward
メソッドのどちらを使用するかを決定します。インクルードリクエストを示すインクルード URI 属性がリクエストに含まれているかどうか、およびレスポンスがすでにコミットされているかどうかのチェックを実行します。どちらの場合も、転送が不可能になるため、インクルードが実行されます。
- パラメーター:
request
- 現在の HTTP リクエストresponse
- 現在の HTTP レスポンス- 戻り値:
- インクルードには
true
、フォワードにはfalse
- 関連事項: