package

org.springframework.ui.context

Contains classes defining the application context subinterface for UI applications. The theme feature is added here.
  • If no UiApplicationContextUtils.THEME_SOURCE_BEAN_NAME bean is available in the context or parent context, a default ResourceBundleThemeSource will be created for requested themes. In this case, the base name of the property file will match with the theme name.
  • If the bean is available in the context or parent context, a basenamePrefix can be set before the theme name for locating the property files like this:
    <bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
    <property name="basenamePrefix"><value>theme.</value></property>
    </bean>

    in this case, the themes resource bundles will be named theme.<theme_name>XXX.properties.
  • This can be defined at application level and/or at servlet level for web applications.
  • Normal i18n features of Resource Bundles are available. So a theme message can be dependant of both theme and locale.
  • If messages in the resource bundles are in fact paths to resources(css, images, ...), make sure these resources are directly available for the user and not, for example, under the WEB-INF directory.

Web packages add the resolution and the setting of the user current theme.

Interfaces

HierarchicalThemeSource Sub-interface of ThemeSource to be implemented by objects that can resolve theme messages hierarchically. 
Theme A Theme can resolve theme-specific messages, codes, file paths, etcetera (e.g. CSS and image files in a web environment). 
ThemeSource Interface to be implemented by objects that can resolve Themes