# Package org.springframework.ui.context

Contains classes defining the application context subinterface for UI applications.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  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`.

## Package org.springframework.ui.context Description

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:
  `&lt;bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource"&gt; <br> &lt;property name="basenamePrefix"&gt;&lt;value&gt;theme.&lt;/value&gt;&lt;/property&gt; <br>&lt;/bean&gt;`
  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.