/** * Obtain the resource bundle for the given basename and {@link Locale}. * @param basename the basename to look for * @param locale the {@code Locale} to look for * @return the corresponding {@code ResourceBundle} * @throws MissingResourceException if no matching bundle could be found * @see ResourceBundle#getBundle(String, Locale, ClassLoader) */ protected ResourceBundle getBundle(String basename, Locale locale) throws MissingResourceException { return ResourceBundle.getBundle(basename, locale, getBundleClassLoader()); }
/** * Eagerly initialize Locales if necessary. * @see #setLocalesToInitialize */ @Override public void afterPropertiesSet() throws BeansException { if (this.localesToInitialize != null) { for (Locale locale : this.localesToInitialize) { initFactory(locale); } } }
/** * Set a single basename, following {@link java.util.ResourceBundle} conventions. * The default is "views". * <p>{@code ResourceBundle} supports different locale suffixes. For example, * a base name of "views" might map to {@code ResourceBundle} files * "views", "views_en_au" and "views_de". * <p>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 {@code java.util.ResourceBundle} usage. * @see #setBasenames * @see ResourceBundle#getBundle(String) * @see ResourceBundle#getBundle(String, Locale) */ public void setBasename(String basename) { setBasenames(basename); }
if (isCache()) { BeanFactory cachedFactory = this.localeCache.get(locale); if (cachedFactory != null) { ResourceBundle bundle = getBundle(basename, locale); bundles.add(bundle); if (isCache()) { BeanFactory cachedFactory = this.bundleCache.get(bundles); if (cachedFactory != null) { factory.setParent(getApplicationContext()); factory.setServletContext(getServletContext()); if (isCache()) { this.localeCache.put(locale, factory); this.bundleCache.put(bundles, factory);
@Test public void sameBundleOnlyCachedOnce() throws Exception { assumeTrue(rb.isCache()); View v1 = rb.resolveViewName("debugView", Locale.ENGLISH); View v2 = rb.resolveViewName("debugView", Locale.UK); assertSame(v1, v2); }
if (isCache()) { BeanFactory cachedFactory = this.localeCache.get(locale); if (cachedFactory != null) { ResourceBundle bundle = getBundle(basename, locale); bundles.add(bundle); if (isCache()) { BeanFactory cachedFactory = this.bundleCache.get(bundles); if (cachedFactory != null) { factory.setParent(getApplicationContext()); factory.setServletContext(getServletContext()); if (isCache()) { this.localeCache.put(locale, factory); this.bundleCache.put(bundles, factory);
if (isCache()) { BeanFactory cachedFactory = this.localeCache.get(locale); if (cachedFactory != null) { ResourceBundle bundle = getBundle(basename, locale); bundles.add(bundle); if (isCache()) { BeanFactory cachedFactory = this.bundleCache.get(bundles); if (cachedFactory != null) { factory.setParent(getApplicationContext()); factory.setServletContext(getServletContext()); if (isCache()) { this.localeCache.put(locale, factory); this.bundleCache.put(bundles, factory);
@Override protected View loadView(String viewName, Locale locale) throws Exception { BeanFactory factory = initFactory(locale); try { return factory.getBean(viewName, View.class); } catch (NoSuchBeanDefinitionException ex) { // Allow for ViewResolver chaining... return null; } }
/** * Obtain the resource bundle for the given basename and {@link Locale}. * @param basename the basename to look for * @param locale the {@code Locale} to look for * @return the corresponding {@code ResourceBundle} * @throws MissingResourceException if no matching bundle could be found * @see ResourceBundle#getBundle(String, Locale, ClassLoader) */ protected ResourceBundle getBundle(String basename, Locale locale) throws MissingResourceException { return ResourceBundle.getBundle(basename, locale, getBundleClassLoader()); }
/** * Set a single basename, following {@link java.util.ResourceBundle} conventions. * The default is "views". * <p>{@code ResourceBundle} supports different locale suffixes. For example, * a base name of "views" might map to {@code ResourceBundle} files * "views", "views_en_au" and "views_de". * <p>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 {@code java.util.ResourceBundle} usage. * @see #setBasenames * @see ResourceBundle#getBundle(String) * @see ResourceBundle#getBundle(String, Locale) */ public void setBasename(String basename) { setBasenames(basename); }
/** * Eagerly initialize Locales if necessary. * @see #setLocalesToInitialize */ @Override public void afterPropertiesSet() throws BeansException { if (this.localesToInitialize != null) { for (Locale locale : this.localesToInitialize) { initFactory(locale); } } }
/** * Obtain the resource bundle for the given basename and {@link Locale}. * @param basename the basename to look for * @param locale the {@code Locale} to look for * @return the corresponding {@code ResourceBundle} * @throws MissingResourceException if no matching bundle could be found * @see ResourceBundle#getBundle(String, Locale, ClassLoader) */ protected ResourceBundle getBundle(String basename, Locale locale) throws MissingResourceException { return ResourceBundle.getBundle(basename, locale, getBundleClassLoader()); }
/** * Set a single basename, following {@link java.util.ResourceBundle} conventions. * The default is "views". * <p>{@code ResourceBundle} supports different locale suffixes. For example, * a base name of "views" might map to {@code ResourceBundle} files * "views", "views_en_au" and "views_de". * <p>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 {@code java.util.ResourceBundle} usage. * @see #setBasenames * @see ResourceBundle#getBundle(String) * @see ResourceBundle#getBundle(String, Locale) */ public void setBasename(String basename) { setBasenames(basename); }
@Override protected View loadView(String viewName, Locale locale) throws Exception { BeanFactory factory = initFactory(locale); try { return factory.getBean(viewName, View.class); } catch (NoSuchBeanDefinitionException ex) { // Allow for ViewResolver chaining... return null; } }
/** * Eagerly initialize Locales if necessary. * @see #setLocalesToInitialize */ @Override public void afterPropertiesSet() throws BeansException { if (this.localesToInitialize != null) { for (Locale locale : this.localesToInitialize) { initFactory(locale); } } }
@Override protected View loadView(String viewName, Locale locale) throws Exception { BeanFactory factory = initFactory(locale); try { return factory.getBean(viewName, View.class); } catch (NoSuchBeanDefinitionException ex) { // Allow for ViewResolver chaining... return null; } }