Class ResourceBundleViewResolver

All Implemented Interfaces:
Aware, DisposableBean, InitializingBean, ApplicationContextAware, Ordered, ServletContextAware, ViewResolver

@Deprecated public class ResourceBundleViewResolver extends AbstractCachingViewResolver implements Ordered, InitializingBean, DisposableBean
Deprecated.
as of 5.3, in favor of Spring's common view resolver variants and/or custom resolver implementations
A ViewResolver implementation that uses bean definitions in a ResourceBundle, specified by the bundle basename.

The bundle is typically defined in a properties file, located in the classpath. The default bundle basename is "views".

This ViewResolver supports localized view definitions, using the default support of PropertyResourceBundle. For example, the basename "views" will be resolved as class path resources "views_de_AT.properties", "views_de.properties", "views.properties" - for a given Locale "de_AT".

Note: This ViewResolver implements the Ordered interface in order to allow for flexible participation in ViewResolver chaining. For example, some special views could be defined via this ViewResolver (giving it 0 as "order" value), while all remaining views could be resolved by a UrlBasedViewResolver.

Author:
Rod Johnson, Juergen Hoeller
See Also:
  • Field Details

    • DEFAULT_BASENAME

      public static final String DEFAULT_BASENAME
      Deprecated.
      The default basename if no other basename is supplied.
      See Also:
  • Constructor Details

    • ResourceBundleViewResolver

      public ResourceBundleViewResolver()
      Deprecated.
  • Method Details

    • setBasename

      public void setBasename(String basename)
      Deprecated.
      Set a single basename, following ResourceBundle conventions. The default is "views".

      ResourceBundle supports different locale suffixes. For example, a base name of "views" might map to ResourceBundle files "views", "views_en_au" and "views_de".

      Note that ResourceBundle names are effectively classpath locations: As a consequence, the JDK's standard ResourceBundle treats dots as package separators. This means that "test.theme" is effectively equivalent to "test/theme", just like it is for programmatic java.util.ResourceBundle usage.

      See Also:
    • setBasenames

      public void setBasenames(String... basenames)
      Deprecated.
      Set an array of basenames, each following ResourceBundle conventions. The default is a single basename "views".

      ResourceBundle supports different locale suffixes. For example, a base name of "views" might map to ResourceBundle files "views", "views_en_au" and "views_de".

      The associated resource bundles will be checked sequentially when resolving a message code. Note that message definitions in a previous resource bundle will override ones in a later bundle, due to the sequential lookup.

      Note that ResourceBundle names are effectively classpath locations: As a consequence, the JDK's standard ResourceBundle treats dots as package separators. This means that "test.theme" is effectively equivalent to "test/theme", just like it is for programmatic java.util.ResourceBundle usage.

      See Also:
    • setBundleClassLoader

      public void setBundleClassLoader(ClassLoader classLoader)
      Deprecated.
      Set the ClassLoader to load resource bundles with. Default is the thread context ClassLoader.
    • getBundleClassLoader

      protected ClassLoader getBundleClassLoader()
      Deprecated.
      Return the ClassLoader to load resource bundles with.

      Default is the specified bundle ClassLoader, usually the thread context ClassLoader.

    • setDefaultParentView

      public void setDefaultParentView(String defaultParentView)
      Deprecated.
      Set the default parent for views defined in the ResourceBundle.

      This avoids repeated "yyy1.(parent)=xxx", "yyy2.(parent)=xxx" definitions in the bundle, especially if all defined views share the same parent.

      The parent will typically define the view class and common attributes. Concrete views might simply consist of a URL definition then: a la "yyy1.url=/my.jsp", "yyy2.url=/your.jsp".

      View definitions that define their own parent or carry their own class can still override this. Strictly speaking, the rule that a default parent setting does not apply to a bean definition that carries a class is there for backwards compatibility reasons. It still matches the typical use case.

    • setLocalesToInitialize

      public void setLocalesToInitialize(Locale... localesToInitialize)
      Deprecated.
      Specify Locales to initialize eagerly, rather than lazily when actually accessed.

      Allows for pre-initialization of common Locales, eagerly checking the view configuration for those Locales.

    • setOrder

      public void setOrder(int order)
      Deprecated.
      Specify the order value for this ViewResolver bean.

      The default value is Ordered.LOWEST_PRECEDENCE, meaning non-ordered.

      See Also:
    • getOrder

      public int getOrder()
      Deprecated.
      Description copied from interface: Ordered
      Get the order value of this object.

      Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet load-on-startup values).

      Same order values will result in arbitrary sort positions for the affected objects.

      Specified by:
      getOrder in interface Ordered
      Returns:
      the order value
      See Also:
    • afterPropertiesSet

      public void afterPropertiesSet() throws BeansException
      Deprecated.
      Eagerly initialize Locales if necessary.
      Specified by:
      afterPropertiesSet in interface InitializingBean
      Throws:
      BeansException
      See Also:
    • loadView

      @Nullable protected View loadView(String viewName, Locale locale) throws Exception
      Deprecated.
      Description copied from class: AbstractCachingViewResolver
      Subclasses must implement this method, building a View object for the specified view. The returned View objects will be cached by this ViewResolver base class.

      Subclasses are not forced to support internationalization: A subclass that does not may simply ignore the locale parameter.

      Specified by:
      loadView in class AbstractCachingViewResolver
      Parameters:
      viewName - the name of the view to retrieve
      locale - the Locale to retrieve the view for
      Returns:
      the View instance, or null if not found (optional, to allow for ViewResolver chaining)
      Throws:
      Exception - if the view couldn't be resolved
      See Also:
    • initFactory

      protected BeanFactory initFactory(Locale locale) throws BeansException
      Deprecated.
      Initialize the View BeanFactory from the ResourceBundle, for the given locale.

      Synchronized because of access by parallel threads.

      Parameters:
      locale - the target Locale
      Returns:
      the View factory for the given Locale
      Throws:
      BeansException - in case of initialization errors
    • getBundle

      protected ResourceBundle getBundle(String basename, Locale locale) throws MissingResourceException
      Deprecated.
      Obtain the resource bundle for the given basename and Locale.
      Parameters:
      basename - the basename to look for
      locale - the Locale to look for
      Returns:
      the corresponding ResourceBundle
      Throws:
      MissingResourceException - if no matching bundle could be found
      See Also:
    • destroy

      public void destroy() throws BeansException
      Deprecated.
      Close the bundle View factories on context shutdown.
      Specified by:
      destroy in interface DisposableBean
      Throws:
      BeansException