クラス 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
- 関連事項:
ネストされたクラスの要約
クラス org.springframework.web.servlet.view.AbstractCachingViewResolver から継承されたネストクラス / インターフェース
AbstractCachingViewResolver.CacheFilterフィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE転送 URL を指定する特別なビュー名のプレフィックス(通常、フォームが送信および処理された後のコントローラーへ)。static final StringSEリダイレクト URL を指定する特別なビュー名のプレフィックス(通常は、フォームが送信および処理された後のコントローラーへ)。クラス org.springframework.web.servlet.view.AbstractCachingViewResolver から継承されたフィールド
DEFAULT_CACHE_LIMITクラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
loggerインターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected ViewapplyLifecycleMethods(StringSE viewName, AbstractUrlBasedView view) 含まれているApplicationContextのライフサイクルメソッドを特定のViewインスタンスに適用します(そのようなコンテキストが利用可能な場合)。protected AbstractUrlBasedView指定されたビュークラスの新しい View インスタンスを作成して構成します。protected booleanこのViewResolverが指定されたビュー名を処理できるかどうかを示します。protected ViewcreateView(StringSE viewName, LocaleSE locale) "redirect:" プレフィックスのチェックを実装するためにオーバーライドされます。特定のエントリを追加または上書きするオプションを使用して、このリゾルバーによって返されるビューの静的属性へのMapアクセスを許可します。protected ObjectSEgetCacheKey(StringSE viewName, LocaleSE locale) この ViewResolver はローカライズされた解決をサポートしていないため、この実装はビュー名のみを返します。protected StringSE存在する場合、すべてのビューのコンテンツ型を返します。protected BooleanSEprotected StringSE[]protected BooleanSEこのリゾルバーによって解決されたビューがモデルにパス変数を追加する必要があるかどうかを返します。intgetOrder()このオブジェクトの順序値を取得します。protected StringSEURL を構築するときにビュー名の前に付加されるプレフィックスを返します。StringSE[]リダイレクトの目的で、構成されたアプリケーションホストを返します。protected StringSE存在する場合、すべてのビューの RequestContext 属性の名前を返します。protected StringSEURL を構築するときにビュー名に追加されるサフィックスを返します。protected ClassSE<?>ビューの作成に使用されるビュークラスを返します。protected StringSE[]このViewResolverで処理できるビュー名(または名前パターン)を返します。protected voidサブクラスは、カスタム初期化動作のためにこれをオーバーライドできます。protected AbstractUrlBasedView指定されたビュークラスをインスタンス化します。protected booleanスラッシュ("/")で始まる特定のリダイレクト URL を、現在の ServletContext を基準として解釈するかどうかを返します。protected booleanリダイレクトが HTTP 1.0 クライアントとの互換性を維持する必要があるかどうかを返します。protected View指定されたビュークラスの新しいインスタンスを作成するためのbuildViewにデリゲートします。protected ClassSE<?>このリゾルバーに必要なビューの型を返します。voidsetAttributes(PropertiesSE props) このリゾルバーによって返されるすべてのビューに対して、java.util.Propertiesオブジェクトから静的属性を設定します。voidsetAttributesMap(MapSE<StringSE, ?> attributes) このリゾルバーによって返されるすべてのビューに対して、マップから静的属性を設定します。voidsetContentType(StringSE contentType) すべてのビューのコンテンツ型を設定します (例:"text/html;charset=UTF-8")。voidsetExposeContextBeansAsAttributes(boolean exposeContextBeansAsAttributes) 属性がアクセスされたら、遅延チェックを通じて、アプリケーションコンテキスト内のすべての Spring Bean をリクエスト属性としてアクセス可能にするかどうかを設定します。voidsetExposedContextBeanNames(StringSE... exposedContextBeanNames) 公開することになっているコンテキスト内の Bean の名前を指定します。voidsetExposePathVariables(BooleanSE exposePathVariables) このリゾルバーによって解決されるビューがモデルにパス変数を追加するかどうかを指定します。voidsetOrder(int order) この ViewResolver Bean の順序値を指定します。voidURL を作成するときに名前を表示するために付加されるプレフィックスを設定します。voidsetRedirectContextRelative(boolean redirectContextRelative) スラッシュ("/")で始まる所定のリダイレクト URL を、現在の ServletContext を基準として解釈するかどうかを設定します。voidsetRedirectHosts(StringSE... redirectHosts) アプリケーションに関連付けられた 1 つ以上のホストを構成します。voidsetRedirectHttp10Compatible(boolean redirectHttp10Compatible) リダイレクトが HTTP 1.0 クライアントとの互換性を維持するかどうかを設定します。voidsetRequestContextAttribute(StringSE requestContextAttribute) すべてのビューの RequestContext 属性の名前を設定します。voidURL を作成するときにビュー名に追加されるサフィックスを設定します。voidsetViewClass(ClassSE<?> viewClass) ビューの作成に使用するビュークラスを設定します。voidsetViewNames(StringSE... viewNames) このViewResolverで処理できるビュー名(または名前パターン)を設定します。クラス org.springframework.web.servlet.view.AbstractCachingViewResolver から継承されたメソッド
clearCache, getCacheFilter, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheFilter, setCacheLimit, setCacheUnresolvedクラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextクラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
フィールドの詳細
コンストラクターの詳細
UrlBasedViewResolver
public UrlBasedViewResolver()
メソッドの詳細
setViewClass
ビューの作成に使用するビュークラスを設定します。- パラメーター:
viewClass- 必要なビュークラスに割り当て可能なクラス (デフォルト: AbstractUrlBasedView)- 関連事項:
getViewClass
ビューの作成に使用されるビュークラスを返します。setPrefix
URL を作成するときに名前を表示するために付加されるプレフィックスを設定します。getPrefix
URL を構築するときにビュー名の前に付加されるプレフィックスを返します。setSuffix
URL を作成するときにビュー名に追加されるサフィックスを設定します。getSuffix
URL を構築するときにビュー名に追加されるサフィックスを返します。setContentType
すべてのビューのコンテンツ型を設定します (例:"text/html;charset=UTF-8")。ビュー自体がコンテンツ型を設定すると想定される場合 (たとえば、JSP の場合)、ビュークラスによって無視されることがあります。
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(java.lang.String)EE を介したリダイレクトでエンコーディングをオフにする方法を提供します。設定されていない場合(デフォルト)、すべての URL がレスポンスを通じてエンコードされます。
- パラメーター:
redirectHosts- 1 つ以上のアプリケーションホスト- 導入:
- 4.3
getRedirectHosts
リダイレクトの目的で、構成されたアプリケーションホストを返します。- 導入:
- 4.3
setRequestContextAttribute
すべてのビューの RequestContext 属性の名前を設定します。- パラメーター:
requestContextAttribute- RequestContext 属性の名前- 関連事項:
getRequestContextAttribute
存在する場合、すべてのビューの RequestContext 属性の名前を返します。setAttributes
このリゾルバーによって返されるすべてのビューに対して、java.util.Propertiesオブジェクトから静的属性を設定します。これは、静的属性を設定する最も便利な方法です。同じ名前の値がモデルに含まれている場合、静的属性は動的属性によってオーバーライドされることに注意してください。
文字列 "value" (PropertiesEditor で解析)または XML Bean 定義の "props" 要素を入力できます。
setAttributesMap
このリゾルバーによって返されるすべてのビューに対して、マップから静的属性を設定します。これにより、Bean 参照など、あらゆる種類の属性値を設定できます。XML Bean 定義の「マップ」または "props" 要素を取り込むことができます。
- パラメーター:
attributes- キーとして名前文字列、値として属性オブジェクトを持つマップ- 関連事項:
getAttributesMap
特定のエントリを追加または上書きするオプションを使用して、このリゾルバーによって返されるビューの静的属性へのMapアクセスを許可します。attributesMap[myKey]などを介してエントリを直接指定する場合に便利です。これは、子ビュー定義のエントリを追加またはオーバーライドする場合に特に便利です。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
公開することになっているコンテキスト内の Bean の名前を指定します。これが null 以外の場合、指定された Bean のみが属性として公開できます。getExposedContextBeanNames
setViewNames
このViewResolverで処理できるビュー名 (または名前パターン) を設定します。ビュー名には単純なワイルドカードを含めることができます。たとえば、"my*"、"*Report"、"*Repo*" はすべてビュー名 "myReport" と一致します。getViewNames
このViewResolverで処理できるビュー名(または名前パターン)を返します。setOrder
public void setOrder(int order) この ViewResolver Bean の順序値を指定します。デフォルト値は
Ordered.LOWEST_PRECEDENCEで、順序なしを意味します。- 関連事項:
getOrder
public int getOrder()インターフェースからコピーされた説明:Orderedこのオブジェクトの順序値を取得します。値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット
load-on-startupの値に多少似ています)。同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
initApplicationContext
protected void initApplicationContext()クラスからコピーされた説明:ApplicationObjectSupportサブクラスは、カスタム初期化動作のためにこれをオーバーライドできます。デフォルトの実装は空です。
ApplicationObjectSupport.initApplicationContext(ApplicationContext)によって呼び出されます。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
- 関連事項: