クラス ContentNegotiatingViewResolver
- 実装されたすべてのインターフェース:
Aware
、InitializingBean
、ApplicationContextAware
、Ordered
、ServletContextAware
、ViewResolver
Accept
ヘッダーに基づいてビューを解決する ViewResolver
の実装。ContentNegotiatingViewResolver
はビュー自体を解決しませんが、他の ViewResolvers
に委譲します。デフォルトでは、これらの他のビューリゾルバーはアプリケーションコンテキストから自動的に取得されますが、viewResolvers
プロパティを使用して明示的に設定することもできます。このビューリゾルバーが正しく機能するためには、order
プロパティを他よりも高い優先順位に設定する必要があることに注意してください (デフォルトは Ordered.HIGHEST_PRECEDENCE
です)。
このビューリゾルバーは、リクエストされたメディア型を使用して、リクエストに適した View
を選択します。リクエストされたメディア型は、設定された ContentNegotiationManager
によって決定されます。リクエストされたメディア型が決定されると、このリゾルバーは各デリゲートビューリゾルバーに View
を照会し、リクエストされたメディア型がビューのコンテンツ型と互換性があるかどうかを判断します。最も互換性のあるビューが返されます。
さらに、このビューリゾルバーは defaultViews
プロパティを公開し、ビューリゾルバーによって提供されるビューをオーバーライドできるようにします。これらのデフォルトのビューは候補として提供されており、コンテンツ型をリクエストする必要があることに注意してください(ファイル拡張子、パラメーター、Accept
ヘッダーを介して、上記で説明)。
例: リクエストパスが /view.html
の場合、このビューリゾルバーは(html
ファイル拡張子に基づいて) text/html
コンテンツ型のビューを探します。text/html
リクエストの Accept
ヘッダーを持つ /view
のリクエストも同じ結果になります。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Juergen Hoeller, Rossen Stoyanchev
- 関連事項:
フィールドサマリー
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターのサマリー
方法の概要
修飾子と型メソッド説明void
リクエストされたメディア型を判別するために使用するContentNegotiationManager
を返します。getMediaTypes
(HttpServletRequestEE request) 指定されたHttpServletRequest
EE のMediaType
のリストを決定します。int
getOrder()
このオブジェクトの順序値を取得します。protected void
initServletContext
(ServletContextEE servletContext) サブクラスは、このアプリケーションオブジェクトが実行される ServletContext に基づいて、カスタム初期化のためにこれをオーバーライドできます。boolean
適切なものが見つからない場合に HTTP ステータス 406 を返すかどうか。resolveViewName
(StringSE viewName, LocaleSE locale) 指定されたビューを名前で解決します。void
setContentNegotiationManager
(ContentNegotiationManager contentNegotiationManager) リクエストされたメディア型を判別するために使用するContentNegotiationManager
を設定します。void
setDefaultViews
(ListSE<View> defaultViews) ViewResolver
チェーンからより具体的なビューを取得できない場合に使用するデフォルトのビューを設定します。void
setOrder
(int order) void
setUseNotAcceptableStatusCode
(boolean useNotAcceptableStatusCode) 適切なビューが見つからない場合に406 Not Acceptable
EE ステータスコードを返すかどうかを指定します。void
setViewResolvers
(ListSE<ViewResolver> viewResolvers) このビューリゾルバーによってラップされるビューリゾルバーを設定します。クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, isContextRequired, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
コンストラクターの詳細
ContentNegotiatingViewResolver
public ContentNegotiatingViewResolver()
メソッドの詳細
setContentNegotiationManager
public void setContentNegotiationManager(@Nullable ContentNegotiationManager contentNegotiationManager) リクエストされたメディア型を判別するために使用するContentNegotiationManager
を設定します。設定されていない場合、ContentNegotiationManager のデフォルトのコンストラクターが使用され、
HeaderContentNegotiationStrategy
が適用されます。getContentNegotiationManager
リクエストされたメディア型を判別するために使用するContentNegotiationManager
を返します。- 導入:
- 4.1.9
setUseNotAcceptableStatusCode
public void setUseNotAcceptableStatusCode(boolean useNotAcceptableStatusCode) 適切なビューが見つからない場合に406 Not Acceptable
EE ステータスコードを返すかどうかを指定します。デフォルトは
false
です。つまり、許容できるビューが見つからない場合、このビューリゾルバーはresolveViewName(String, Locale)
に対してnull
を返します。これにより、ビューリゾルバーの連鎖が可能になります。このプロパティがtrue
に設定されている場合、resolveViewName(String, Locale)
はレスポンスステータスを406 Not Acceptable
に設定するビューでレスポンスします。isUseNotAcceptableStatusCode
public boolean isUseNotAcceptableStatusCode()適切なものが見つからない場合に HTTP ステータス 406 を返すかどうか。setDefaultViews
ViewResolver
チェーンからより具体的なビューを取得できない場合に使用するデフォルトのビューを設定します。getDefaultViews
setViewResolvers
このビューリゾルバーによってラップされるビューリゾルバーを設定します。このプロパティが設定されていない場合、ビューリゾルバーは自動的に検出されます。
getViewResolvers
setOrder
public void setOrder(int order) getOrder
public int getOrder()インターフェースからコピーされた説明:Ordered
このオブジェクトの順序値を取得します。値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット
load-on-startup
の値に多少似ています)。同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
initServletContext
クラスからコピーされた説明:WebApplicationObjectSupport
サブクラスは、このアプリケーションオブジェクトが実行される ServletContext に基づいて、カスタム初期化のためにこれをオーバーライドできます。デフォルトの実装は空です。
WebApplicationObjectSupport.initApplicationContext(org.springframework.context.ApplicationContext)
およびWebApplicationObjectSupport.setServletContext(jakarta.servlet.ServletContext)
によって呼び出されます。- オーバーライド:
- クラス
WebApplicationObjectSupport
のinitServletContext
- パラメーター:
servletContext
- このアプリケーションオブジェクトが実行される ServletContext (非null
)
afterPropertiesSet
public void afterPropertiesSet()インターフェースからコピーされた説明:InitializingBean
すべての Bean プロパティを設定し、BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
resolveViewName
インターフェースからコピーされた説明:ViewResolver
指定されたビューを名前で解決します。メモ: ViewResolver チェーンを可能にするために、指定された名前のビューが定義されていない場合、ViewResolver は
null
を返す必要があります。ただし、これは必須ではありません: 一部の ViewResolvers は、常に指定された名前のビューオブジェクトを構築しようとし、null
を返すことができません(ビューの作成が失敗した場合は例外をスローします)。- 次で指定:
- インターフェース
ViewResolver
のresolveViewName
- パラメーター:
viewName
- 解決するビューの名前locale
- ビューを解決するロケール。国際化をサポートする ViewResolvers はこれを考慮する必要があります。- 戻り値:
- View オブジェクト。見つからない場合は
null
(ViewResolver チェーニングを可能にするオプション) - 例外:
ExceptionSE
- ビューを解決できない場合 (通常、実際の View オブジェクトの作成に問題がある場合)
getMediaTypes
指定されたHttpServletRequest
EE のMediaType
のリストを決定します。- パラメーター:
request
- 現在のサーブレットリクエスト- 戻り値:
- リクエストされたメディア型のリスト(存在する場合)