public class ResourceBundleViewResolver extends AbstractCachingViewResolver implements Ordered, InitializingBean, DisposableBean
ResourceBundleSE の Bean 定義を使用する ViewResolver 実装。バンドルは通常、クラスパスにあるプロパティファイルで定義されます。デフォルトのバンドルベース名は「ビュー」です。
この ViewResolver は、PropertyResourceBundleSE のデフォルトのサポートを使用して、ローカライズされたビュー定義をサポートします。例: ベース名 "views" は、特定のロケール "de_AT" のクラスパスリソース "views_de_AT.properties"、"views_de.properties"、"views.properties" として解決されます。
メモ: この ViewResolver は、ViewResolver チェーンへの柔軟な参加を可能にするために、Ordered インターフェースを実装しています。例: 一部の特別なビューは、この ViewResolver ( "order" 値として 0 を指定)を介して定義できますが、残りのすべてのビューは UrlBasedViewResolver によって解決できます。
ResourceBundle.getBundle(java.lang.String)SE, PropertyResourceBundleSE, UrlBasedViewResolverAbstractCachingViewResolver.CacheFilter| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | DEFAULT_BASENAME 他のベース名が指定されていない場合のデフォルトのベース名。 |
DEFAULT_CACHE_LIMITloggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
ResourceBundleViewResolver() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() 必要に応じて、ロケールを積極的に初期化します。 |
void | destroy() コンテキストシャットダウン時にバンドルビューファクトリを閉じます。 |
protected ResourceBundleSE | getBundle(StringSE basename, LocaleSE locale) 指定されたベース名と LocaleSE のリソースバンドルを取得します。 |
protected ClassLoaderSE | getBundleClassLoader() リソースバンドルをロードする ClassLoaderSE を返します。 |
int | getOrder() このオブジェクトの順序値を取得します。 |
protected BeanFactory | initFactory(LocaleSE locale) |
protected View | loadView(StringSE viewName, LocaleSE locale) サブクラスはこのメソッドを実装して、指定されたビューの View オブジェクトを構築する必要があります。 |
void | setBasename(StringSE basename)ResourceBundleSE の規則に従って、単一のベース名を設定します。 |
void | setBasenames(StringSE... basenames) ベース名の配列を設定します。それぞれは ResourceBundleSE の規則に従います。 |
void | setBundleClassLoader(ClassLoaderSE classLoader) リソースバンドルをロードする ClassLoaderSE を設定します。 |
void | setDefaultParentView(StringSE defaultParentView)ResourceBundle で定義されたビューのデフォルトの親を設定します。 |
void | setLocalesToInitialize(LocaleSE... localesToInitialize)Locales を指定すると、実際にアクセスされたときに遅延ではなく、積極的に初期化されます。 |
void | setOrder(int order) この ViewResolver Bean の順序値を指定します。 |
clearCache, createView, getCacheFilter, getCacheKey, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheFilter, setCacheLimit, setCacheUnresolvedgetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContextcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setBasename(StringSE basename)
ResourceBundleSE の規則に従って、単一のベース名を設定します。デフォルトは「ビュー」です。ResourceBundle は、さまざまなロケールサフィックスをサポートしています。例: "views" のベース名は、ResourceBundle ファイル "views"、"views_en_au"、"views_de" にマップされる場合があります。
ResourceBundle 名は事実上クラスパスの場所であることに注意してください。その結果、JDK の標準 ResourceBundle はドットをパッケージ区切り文字として扱います。これは、"test.theme" は、プログラムによる java.util.ResourceBundle の使用と同様に、実質的に「テスト / テーマ」と同等であることを意味します。
public void setBasenames(StringSE... basenames)
ResourceBundleSE の規則に従います。デフォルトは、単一のベース名 "views" です。ResourceBundle は、さまざまなロケールサフィックスをサポートしています。例: "views" のベース名は、ResourceBundle ファイル "views"、"views_en_au"、"views_de" にマップされる場合があります。
関連するリソースバンドルは、メッセージコードを解決するときに順次チェックされます。順次ルックアップのため、 前のリソースバンドルのメッセージ定義は、後のバンドルのメッセージ定義をオーバーライドすることに注意してください。
ResourceBundle 名は事実上クラスパスの場所であることに注意してください。その結果、JDK の標準 ResourceBundle はドットをパッケージ区切り文字として扱います。これは、"test.theme" は、プログラムによる java.util.ResourceBundle の使用と同様に、実質的に「テスト / テーマ」と同等であることを意味します。
public void setBundleClassLoader(ClassLoaderSE classLoader)
ClassLoaderSE を設定します。デフォルトはスレッドコンテキスト ClassLoader です。protected ClassLoaderSE getBundleClassLoader()
ClassLoaderSE を返します。 デフォルトは指定されたバンドル ClassLoader で、通常はスレッドコンテキスト ClassLoader です。
public void setDefaultParentView(StringSE defaultParentView)
ResourceBundle で定義されたビューのデフォルトの親を設定します。これにより、特に定義されたすべてのビューが同じ親を共有する場合に、バンドル内の「yyy1。(parent)= xxx」、「yyy2。(parent)= xxx」の定義が繰り返されるのを防ぎます。
親は通常、ビュークラスと共通の属性を定義します。具象ビューは単に URL 定義で構成される場合があります: "yyy1.url =/my.jsp"、"yyy2.url =/your.jsp"。
独自の親を定義する、または独自のクラスを持つビュー定義は、これをオーバーライドできます。厳密に言うと、デフォルトの親設定がクラスを保持する Bean 定義に適用されないというルールは、下位互換性のためにあります。それでも、通常の使用例と一致します。
public void setLocalesToInitialize(LocaleSE... localesToInitialize)
一般的なロケールの事前初期化を可能にし、それらのロケールのビュー構成を先行してチェックします。
public void setOrder(int order)
デフォルト値は Ordered.LOWEST_PRECEDENCE で、順序なしを意味します。
Ordered.getOrder()public int getOrder()
Ordered 値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。
同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
Ordered の getOrder Ordered.HIGHEST_PRECEDENCE, Ordered.LOWEST_PRECEDENCEpublic void afterPropertiesSet()
throws BeansExceptionInitializingBean の afterPropertiesSet BeansExceptionsetLocalesToInitialize(java.util.Locale...)protected View loadView(StringSE viewName, LocaleSE locale) throws ExceptionSE
AbstractCachingViewResolverサブクラスは国際化をサポートすることを強制されません: 単にロケールパラメーターを無視しないサブクラス。
AbstractCachingViewResolver の loadView viewName - 取得するビューの名前 locale - ビューを取得するロケール null (ViewResolver チェーニングを可能にするオプション)ExceptionSE - ビューを解決できなかった場合 AbstractCachingViewResolver.resolveViewName(java.lang.String, java.util.Locale)protected BeanFactory initFactory(LocaleSE locale) throws BeansException
locale - ターゲット LocaleBeansException - 初期化エラーの場合 protected ResourceBundleSE getBundle(StringSE basename, LocaleSE locale) throws MissingResourceExceptionSE
LocaleSE のリソースバンドルを取得します。basename - 検索するベース名 locale - 検索する Locale ResourceBundleMissingResourceExceptionSE - 一致するバンドルが見つからなかった場合 ResourceBundle.getBundle(String, Locale, ClassLoader)SEpublic void destroy()
throws BeansExceptionDisposableBean の destroy BeansException