クラス 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 View
applyLifecycleMethods
(StringSE viewName, AbstractUrlBasedView view) 含まれているApplicationContext
のライフサイクルメソッドを特定のView
インスタンスに適用します(そのようなコンテキストが利用可能な場合)。protected AbstractUrlBasedView
指定されたビュークラスの新しい View インスタンスを作成して構成します。protected boolean
このViewResolver
が指定されたビュー名を処理できるかどうかを示します。protected View
createView
(StringSE viewName, LocaleSE locale) "redirect:" プレフィックスのチェックを実装するためにオーバーライドされます。特定のエントリを追加または上書きするオプションを使用して、このリゾルバーによって返されるビューの静的属性へのMap
アクセスを許可します。protected ObjectSE
getCacheKey
(StringSE viewName, LocaleSE locale) この ViewResolver はローカライズされた解決をサポートしていないため、この実装はビュー名のみを返します。protected StringSE
存在する場合、すべてのビューのコンテンツ型を返します。protected BooleanSE
protected StringSE[]
protected BooleanSE
このリゾルバーによって解決されたビューがモデルにパス変数を追加する必要があるかどうかを返します。int
getOrder()
このオブジェクトの順序値を取得します。protected StringSE
URL を構築するときにビュー名の前に付加されるプレフィックスを返します。StringSE[]
リダイレクトの目的で、構成されたアプリケーションホストを返します。protected StringSE
存在する場合、すべてのビューの RequestContext 属性の名前を返します。protected StringSE
URL を構築するときにビュー名に追加されるサフィックスを返します。protected ClassSE<?>
ビューの作成に使用されるビュークラスを返します。protected StringSE[]
このViewResolver
で処理できるビュー名(または名前パターン)を返します。protected void
サブクラスは、カスタム初期化動作のためにこれをオーバーライドできます。protected AbstractUrlBasedView
指定されたビュークラスをインスタンス化します。protected boolean
スラッシュ("/")で始まる特定のリダイレクト URL を、現在の ServletContext を基準として解釈するかどうかを返します。protected boolean
リダイレクトが HTTP 1.0 クライアントとの互換性を維持する必要があるかどうかを返します。protected View
指定されたビュークラスの新しいインスタンスを作成するためのbuildView
にデリゲートします。protected ClassSE<?>
このリゾルバーに必要なビューの型を返します。void
setAttributes
(PropertiesSE props) このリゾルバーによって返されるすべてのビューに対して、java.util.Properties
オブジェクトから静的属性を設定します。void
setAttributesMap
(MapSE<StringSE, ?> attributes) このリゾルバーによって返されるすべてのビューに対して、マップから静的属性を設定します。void
setContentType
(StringSE contentType) すべてのビューのコンテンツ型を設定します (例:"text/html;charset=UTF-8"
)。void
setExposeContextBeansAsAttributes
(boolean exposeContextBeansAsAttributes) 属性がアクセスされたら、遅延チェックを通じて、アプリケーションコンテキスト内のすべての Spring Bean をリクエスト属性としてアクセス可能にするかどうかを設定します。void
setExposedContextBeanNames
(StringSE... exposedContextBeanNames) 公開することになっているコンテキスト内の Bean の名前を指定します。void
setExposePathVariables
(BooleanSE exposePathVariables) このリゾルバーによって解決されるビューがモデルにパス変数を追加するかどうかを指定します。void
setOrder
(int order) この ViewResolver Bean の順序値を指定します。void
URL を作成するときに名前を表示するために付加されるプレフィックスを設定します。void
setRedirectContextRelative
(boolean redirectContextRelative) スラッシュ("/")で始まる所定のリダイレクト URL を、現在の ServletContext を基準として解釈するかどうかを設定します。void
setRedirectHosts
(StringSE... redirectHosts) アプリケーションに関連付けられた 1 つ以上のホストを構成します。void
setRedirectHttp10Compatible
(boolean redirectHttp10Compatible) リダイレクトが HTTP 1.0 クライアントとの互換性を維持するかどうかを設定します。void
setRequestContextAttribute
(StringSE requestContextAttribute) すべてのビューの RequestContext 属性の名前を設定します。void
URL を作成するときにビュー名に追加されるサフィックスを設定します。void
setViewClass
(ClassSE<?> viewClass) ビューの作成に使用するビュークラスを設定します。void
setViewNames
(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
- 関連事項: