クラス UrlBasedViewResolver
- 実装されているすべてのインターフェース:
Aware, ApplicationContextAware, Ordered, ServletContextAware, ViewResolver
- 既知の直属サブクラス
AbstractTemplateViewResolver, InternalResourceViewResolver, ScriptTemplateViewResolver, XsltViewResolver
ViewResolver インターフェースの単純な実装。明示的なマッピング定義なしで、シンボリックビュー名を URL に直接解決できます。これは、シンボリック名がビューリソースの名前と簡単に一致する場合(つまり、シンボリック名がリソースのファイル名の一意の部分である場合)に役立ちます。各ビューに専用のマッピングを定義する必要はありません。InternalResourceView や FreeMarkerView などの AbstractUrlBasedView サブクラスをサポートします。このリゾルバーによって生成されるすべてのビューのビュークラスは、"viewClass" プロパティで指定できます。
ビュー名は、それ自体がリソース URL であるか、指定されたプレフィックスやサフィックスによって拡張されます。RequestContext を保持する属性をすべてのビューにエクスポートすることは明示的にサポートされています。
サンプル: prefix="/WEB-INF/jsp/"、suffix=".jsp"、viewname="test" → "/WEB-INF/jsp/test.jsp"
特別な機能として、リダイレクト URL は "redirect:" プレフィックスを使用して指定できます。たとえば、"redirect:myAction" は、標準のビュー名として解決するのではなく、指定された URL へのリダイレクトをトリガーします。これは通常、フォームワークフローの終了後にコントローラー URL にリダイレクトするために使用されます。
さらに、転送 URL は "forward:" プレフィックスで指定できます。たとえば、"forward:myAction" は、標準のビュー名として解決されるのではなく、指定された URL への転送をトリガーします。これは通常、コントローラー URL に使用されます。JSP URL に使用することは想定されていません。JSP URL では論理ビュー名を使用してください。
メモ: このクラスはローカライズされた解決をサポートしません。つまり、現在のロケールに応じて、シンボリックビュー名を別のリソースに解決します。
注 : ViewResolvers をチェーンする場合、UrlBasedViewResolver は、指定されたリソースが実際に存在するかどうかを確認します。ただし、InternalResourceView では、通常、ターゲットリソースの存在を事前に判断することはできません。このようなシナリオでは、UrlBasedViewResolver は常に、指定されたビュー名のビューを返します。チェーンの最後の ViewResolver として構成する必要があります。
- 導入:
- 13.12.2003
- 作成者:
- Juergen Hoeller, Rob Harrop, Sam Brannen
- 関連事項:
ネストされたクラスの要約
クラス AbstractCachingViewResolver から継承されたネストクラス / インターフェース
AbstractCachingViewResolver.CacheFilterフィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE転送 URL を指定する特別なビュー名のプレフィックス(通常、フォームが送信および処理された後のコントローラーへ)。static final StringSEリダイレクト URL を指定する特別なビュー名のプレフィックス(通常は、フォームが送信および処理された後のコントローラーへ)。クラス AbstractCachingViewResolver から継承されたフィールド
DEFAULT_CACHE_LIMITクラス ApplicationObjectSupport から継承されたフィールド
loggerインターフェース Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected ViewapplyLifecycleMethods(StringSE viewName, AbstractUrlBasedView view) 含まれているApplicationContextのライフサイクルメソッドを特定のViewインスタンスに適用します(そのようなコンテキストが利用可能な場合)。protected AbstractUrlBasedView指定されたビュークラスの新しい View インスタンスを作成して構成します。protected booleanこのViewResolverが指定されたビュー名を処理できるかどうかを示します。createView(StringSE viewName, LocaleSE locale) "redirect:" プレフィックスのチェックを実装するためにオーバーライドされます。特定のエントリを追加または上書きするオプションを使用して、このリゾルバーによって返されるビューの静的属性へのMapアクセスを許可します。protected ObjectSEgetCacheKey(StringSE viewName, LocaleSE locale) この ViewResolver はローカライズされた解決をサポートしていないため、この実装はビュー名のみを返します。存在する場合、すべてのビューのコンテンツ型を返します。このリゾルバーによって解決されたビューがモデルにパス変数を追加する必要があるかどうかを返します。intgetOrder()このオブジェクトの順序値を取得します。protected StringSEURL を構築するときにビュー名の前に付加されるプレフィックスを返します。リダイレクトの目的で、構成されたアプリケーションホストを返します。存在する場合、すべてのビューの RequestContext 属性の名前を返します。protected StringSEURL を構築するときにビュー名に追加されるサフィックスを返します。ビューの作成に使用されるビュークラスを返します。このViewResolverで処理できるビュー名(または名前パターン)を返します。protected voidサブクラスは、カスタム初期化動作のためにこれをオーバーライドできます。protected AbstractUrlBasedView指定されたビュークラスをインスタンス化します。protected booleanスラッシュ("/")で始まる特定のリダイレクト URL を、現在の ServletContext を基準として解釈するかどうかを返します。protected booleanリダイレクトが HTTP 1.0 クライアントとの互換性を維持する必要があるかどうかを返します。指定されたビュークラスの新しいインスタンスを作成するためのbuildViewにデリゲートします。protected ClassSE<?> このリゾルバーに必要なビューの型を返します。voidsetAttributes(PropertiesSE props) このリゾルバーによって返されるすべてのビューに対して、java.util.Propertiesオブジェクトから静的属性を設定します。voidsetAttributesMap(@Nullable MapSE<StringSE, ?> attributes) このリゾルバーによって返されるすべてのビューに対して、マップから静的属性を設定します。voidsetContentType(@Nullable StringSE contentType) すべてのビューのコンテンツ型を設定します (例:"text/html;charset=UTF-8")。voidsetExposeContextBeansAsAttributes(boolean exposeContextBeansAsAttributes) 属性がアクセスされたら、遅延チェックを通じて、アプリケーションコンテキスト内のすべての Spring Bean をリクエスト属性としてアクセス可能にするかどうかを設定します。voidsetExposedContextBeanNames(StringSE @Nullable... exposedContextBeanNames) 公開することになっているコンテキスト内の Bean の名前を指定します。voidsetExposePathVariables(@Nullable BooleanSE exposePathVariables) このリゾルバーによって解決されるビューがモデルにパス変数を追加するかどうかを指定します。voidsetOrder(int order) この ViewResolver Bean の順序値を指定します。voidURL を作成するときに名前を表示するために付加されるプレフィックスを設定します。voidsetRedirectContextRelative(boolean redirectContextRelative) スラッシュ("/")で始まる所定のリダイレクト URL を、現在の ServletContext を基準として解釈するかどうかを設定します。voidsetRedirectHosts(StringSE @Nullable... redirectHosts) アプリケーションに関連付けられた 1 つ以上のホストを構成します。voidsetRedirectHttp10Compatible(boolean redirectHttp10Compatible) リダイレクトが HTTP 1.0 クライアントとの互換性を維持するかどうかを設定します。voidsetRequestContextAttribute(@Nullable StringSE requestContextAttribute) すべてのビューの RequestContext 属性の名前を設定します。voidURL を作成するときにビュー名に追加されるサフィックスを設定します。voidsetViewClass(@Nullable ClassSE<?> viewClass) ビューの作成に使用するビュークラスを設定します。voidsetViewNames(StringSE @Nullable... viewNames) このViewResolverで処理できるビュー名(または名前パターン)を設定します。クラス AbstractCachingViewResolver から継承されたメソッド
clearCache, getCacheFilter, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheFilter, setCacheLimit, setCacheUnresolvedクラス WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
フィールドの詳細
REDIRECT_URL_PREFIX
リダイレクト URL を指定する特別なビュー名のプレフィックス(通常は、フォームが送信および処理された後のコントローラーへ)。このようなビュー名は、構成されたデフォルトの方法では解決されず、特別なショートカットとして扱われます。- 関連事項:
FORWARD_URL_PREFIX
転送 URL を指定する特別なビュー名のプレフィックス(通常、フォームが送信および処理された後のコントローラーへ)。このようなビュー名は、構成されたデフォルトの方法では解決されず、特別なショートカットとして扱われます。- 関連事項:
コンストラクターの詳細
UrlBasedViewResolver
public UrlBasedViewResolver()
メソッドの詳細
setViewClass
getViewClass
setPrefix
getPrefix
URL を構築するときにビュー名の前に付加されるプレフィックスを返します。setSuffix
getSuffix
URL を構築するときにビュー名に追加されるサフィックスを返します。setContentType
getContentType
setRedirectContextRelative
public void setRedirectContextRelative(boolean redirectContextRelative) スラッシュ("/")で始まる特定のリダイレクト URL を、現在の ServletContext を基準として、つまり Web アプリケーションのルートを基準として解釈するかどうかを設定します。デフォルトは「true」: スラッシュで始まるリダイレクト URL は、Web アプリケーションのルートを基準にして解釈されます。つまり、コンテキストパスが URL の前に付加されます。
リダイレクト URL は、"redirect:" プレフィックスを使用して指定できます。例: "redirect:myAction"
- 関連事項:
isRedirectContextRelative
protected boolean isRedirectContextRelative()スラッシュ("/")で始まる所定のリダイレクト URL を、現在の ServletContext を基準として、つまり Web アプリケーションのルートを基準として解釈するかどうかを返します。setRedirectHttp10Compatible
public void setRedirectHttp10Compatible(boolean redirectHttp10Compatible) リダイレクトが HTTP 1.0 クライアントとの互換性を維持するかどうかを設定します。デフォルトの実装では、これにより HTTP ステータスコード 302 が強制されます。つまり、
HttpServletResponse.sendRedirectに委譲されます。これをオフにすると、HTTP 1.1 クライアントの正しいコードである HTTP ステータスコード 303 が送信されますが、HTTP 1.0 クライアントでは認識されません。多くの HTTP 1.1 クライアントは、302 を 303 のように扱い、違いはありません。ただし、POST リクエストの後でリダイレクトする場合、一部のクライアントは 303 に依存します。このようなシナリオでは、このフラグをオフにしてください。
リダイレクト URL は、"redirect:" プレフィックスを使用して指定できます。例: "redirect:myAction"
- 関連事項:
isRedirectHttp10Compatible
protected boolean isRedirectHttp10Compatible()リダイレクトが HTTP 1.0 クライアントとの互換性を維持する必要があるかどうかを返します。setRedirectHosts
アプリケーションに関連付けられた 1 つ以上のホストを構成します。他のすべてのホストは外部ホストと見なされます。実際には、このプロパティは、ホストがあり、そのホストが既知のホストとしてリストされていない URL に対して、
HttpServletResponse.encodeRedirectURL(String)経由のリダイレクト時にエンコードをオフにする方法を提供します。設定されていない場合(デフォルト)、すべての URL がレスポンスを通じてエンコードされます。
- パラメーター:
redirectHosts- 1 つ以上のアプリケーションホスト- 導入:
- 4.3
getRedirectHosts
setRequestContextAttribute
getRequestContextAttribute
setAttributes
このリゾルバーによって返されるすべてのビューに対して、java.util.Propertiesオブジェクトから静的属性を設定します。これは、静的属性を設定する最も便利な方法です。同じ名前の値がモデルに含まれている場合、静的属性は動的属性によってオーバーライドされることに注意してください。
文字列 "value" (PropertiesEditor で解析)または XML Bean 定義の "props" 要素を入力できます。
- 関連事項:
setAttributesMap
getAttributesMap
setExposePathVariables
このリゾルバーによって解決されるビューがモデルにパス変数を追加するかどうかを指定します。デフォルト設定では、各ビューに決定を任せます(
AbstractView.setExposePathVariables(boolean)を参照)。ただし、このプロパティを使用してそれをオーバーライドできます。- パラメーター:
exposePathVariables-true- このリゾルバーによって解決されたすべてのビューはパス変数を公開しますfalse- このリゾルバーによって解決されたビューはパス変数を公開しませんnull- 個々のビューは自分で決めることができます (これはデフォルトで使用されます)
- 関連事項:
getExposePathVariables
setExposeContextBeansAsAttributes
public void setExposeContextBeansAsAttributes(boolean exposeContextBeansAsAttributes) 属性がアクセスされたら、遅延チェックを通じて、アプリケーションコンテキスト内のすべての Spring Bean をリクエスト属性としてアクセス可能にするかどうかを設定します。これにより、JSTL の
c:out値式と同様に、JSP 2.0 ページのプレーンな${...}式でそのようなすべての Bean にアクセスできるようになります。デフォルトは「false」。
- 関連事項:
getExposeContextBeansAsAttributes
setExposedContextBeanNames
getExposedContextBeanNames
setViewNames
このViewResolverで処理できるビュー名 (または名前パターン) を設定します。ビュー名には単純なワイルドカードを含めることができます。たとえば、"my*"、"*Report"、"*Repo*" はすべてビュー名 "myReport" と一致します。- 関連事項:
getViewNames
このViewResolverで処理できるビュー名(または名前パターン)を返します。setOrder
public void setOrder(int order) この ViewResolver Bean の順序値を指定します。デフォルト値は
Ordered.LOWEST_PRECEDENCEで、順序なしを意味します。- 関連事項:
getOrder
initApplicationContext
protected void initApplicationContext()クラスからコピーされた説明:ApplicationObjectSupportサブクラスは、カスタム初期化動作のためにこれをオーバーライドできます。デフォルトの実装は空です。
ApplicationObjectSupport.initApplicationContext(ApplicationContext)によって呼び出されます。- オーバーライド:
- クラス
ApplicationObjectSupportのinitApplicationContext - 関連事項:
getCacheKey
この ViewResolver はローカライズされた解決をサポートしていないため、この実装はビュー名のみを返します。- オーバーライド:
- クラス
AbstractCachingViewResolverのgetCacheKey
createView
"redirect:" プレフィックスのチェックを実装するためにオーバーライドされます。loadViewでは不可能です。サブクラスでオーバーライドされたloadViewバージョンは、常に必要なビュークラスのインスタンスを作成するスーパークラスに依存している可能性があるためです。- オーバーライド:
- クラス
AbstractCachingViewResolverのcreateView - パラメーター:
viewName- 取得するビューの名前locale- ビューを取得するロケール- 戻り値:
- View インスタンス。見つからない場合は
null(ViewResolver チェーニングを可能にするオプション) - 例外:
ExceptionSE- ビューを解決できなかった場合- 関連事項:
canHandle
このViewResolverが指定されたビュー名を処理できるかどうかを示します。そうでない場合、createView(String, java.util.Locale)はnullを返します。デフォルトの実装は、構成されたview namesをチェックします。- パラメーター:
viewName- 取得するビューの名前locale- ビューを取得するロケール- 戻り値:
- このリゾルバーが指定されたビューに適用されるかどうか
- 関連事項:
requiredViewClass
このリゾルバーに必要なビューの型を返します。この実装はAbstractUrlBasedViewを返します。- 関連事項:
instantiateView
指定されたビュークラスをインスタンス化します。デフォルトの実装では、リフレクションを使用してクラスをインスタンス化します。
- 戻り値:
- ビュークラスの新しいインスタンス
- 導入:
- 5.3
- 関連事項:
loadView
指定されたビュークラスの新しいインスタンスを作成するためのbuildViewにデリゲートします。次の Spring ライフサイクルメソッドを適用します(一般的な Spring Bean ファクトリでサポートされています)。- ApplicationContextAware の
setApplicationContext - InitializingBean の
afterPropertiesSet
- 次で指定:
- クラス
AbstractCachingViewResolverのloadView - パラメーター:
viewName- 取得するビューの名前locale- ビューを取得するロケール- 戻り値:
- ビューインスタンス
- 例外:
ExceptionSE- ビューを解決できなかった場合- 関連事項:
- ApplicationContextAware の
buildView
指定されたビュークラスの新しい View インスタンスを作成して構成します。事前定義されたビューインスタンスのルックアップを実行しません。Bean コンテナーで定義されている Spring ライフサイクルメソッドをここで呼び出す必要はありません。これらは、このメソッドが戻った後に
loadViewメソッドによって適用されます。サブクラスは通常、
super.buildView(viewName)を最初に呼び出してから、さらにプロパティを設定します。loadViewは、このプロセスの最後に Spring ライフサイクルメソッドを適用します。- パラメーター:
viewName- 構築するビューの名前- 戻り値:
- ビューインスタンス
- 例外:
ExceptionSE- ビューを解決できなかった場合- 関連事項:
applyLifecycleMethods
含まれているApplicationContextのライフサイクルメソッドを特定のViewインスタンスに適用します(そのようなコンテキストが利用可能な場合)。- パラメーター:
viewName- ビューの名前view-AbstractUrlBasedViewのプロパティで事前設定された、新しく作成された View インスタンス- 戻り値:
- 使用する
Viewインスタンス (オリジナルまたは装飾されたバリアントのいずれか) - 導入:
- 5.0
- 関連事項: