クラス InternalResourceView
- 実装されているすべてのインターフェース:
Aware、BeanNameAware、InitializingBean、ApplicationContextAware、ServletContextAware、View
- 既知の直属サブクラス
JstlView
RequestDispatcherEE を使用してリクエストを指定されたリソース 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 voidexposeHelpers(HttpServletRequestEE request) 各レンダリング操作に固有のヘルパーを公開します。protected RequestDispatcherEEgetRequestDispatcher(HttpServletRequestEE request, StringSE path) フォワード / インクルードに使用する RequestDispatcher を取得します。protected booleanApplicationContext は、InternalResourceView には厳密には必要ありません。protected StringSEprepareForRendering(HttpServletRequestEE request, HttpServletResponseEE response) レンダリングの準備をし、転送する(または含める)リクエストディスパッチャーのパスを決定します。protected voidrenderMergedOutputModel(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request, HttpServletResponseEE response) 指定されたモデルの内部リソースをレンダリングします。voidsetAlwaysInclude(boolean alwaysInclude) ビューに転送するのではなく、常にビューを含めるかどうかを指定します。voidsetPreventDispatchLoop(boolean preventDispatchLoop) 現在のハンドラーパスへのディスパッチを明示的に禁止するかどうかを設定します。protected booleanuseInclude(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 - 関連事項: