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