org.springframework.context.support

## Class MessageSourceResourceBundle

- java.lang.Object
- - java.util.ResourceBundle
  - - org.springframework.context.support.MessageSourceResourceBundle

    public class MessageSourceResourceBundle
    extends ResourceBundle

Helper class that allows for accessing a Spring `MessageSource` as a `ResourceBundle`. Used for example to expose a Spring MessageSource to JSTL web views.

Since:
  27.02.2003
Author:
  Juergen Hoeller
See Also:
  `MessageSource`, `ResourceBundle`, `JstlUtils.exposeLocalizationContext(javax.servlet.http.HttpServletRequest, org.springframework.context.MessageSource)`

### Nested Class Summary

### Nested classes/interfaces inherited from class java.util.ResourceBundle

`ResourceBundle.Control`

### Field Summary

### Fields inherited from class java.util.ResourceBundle

`parent`

### Constructor Summary

Constructors
Constructor and Description
`MessageSourceResourceBundle(MessageSource source, Locale locale)` Create a new MessageSourceResourceBundle for the given MessageSource and Locale.
`MessageSourceResourceBundle(MessageSource source, Locale locale, ResourceBundle parent)` Create a new MessageSourceResourceBundle for the given MessageSource and Locale.

### Method Summary

Methods
`boolean` `containsKey(String key)` This implementation checks whether the target MessageSource can resolve a message for the given key, translating `NoSuchMessageException` accordingly.
`Enumeration<String>` `getKeys()` This implementation throws `UnsupportedOperationException`, as a MessageSource does not allow for enumerating the defined message codes.
`Locale` `getLocale()` This implementation exposes the specified Locale for introspection through the standard `ResourceBundle.getLocale()` method.
`protected Object` `handleGetObject(String key)` This implementation resolves the code in the MessageSource.

### Methods inherited from class java.util.ResourceBundle

`clearCache, clearCache, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getObject, getString, getStringArray, handleKeySet, keySet, setParent`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### MessageSourceResourceBundle

    public MessageSourceResourceBundle(MessageSource source,
                               Locale locale)

Create a new MessageSourceResourceBundle for the given MessageSource and Locale.

Parameters:
  `source` - the MessageSource to retrieve messages from
  `locale` - the Locale to retrieve messages for

#### MessageSourceResourceBundle

    public MessageSourceResourceBundle(MessageSource source,
                               Locale locale,
                               ResourceBundle parent)

Create a new MessageSourceResourceBundle for the given MessageSource and Locale.

Parameters:
  `source` - the MessageSource to retrieve messages from
  `locale` - the Locale to retrieve messages for
  `parent` - the parent ResourceBundle to delegate to if no local message found

### Method Detail

#### handleGetObject

    protected Object handleGetObject(String key)

This implementation resolves the code in the MessageSource. Returns `null` if the message could not be resolved.

Specified by:
  `handleGetObject` in class `ResourceBundle`

#### containsKey

    public boolean containsKey(String key)

This implementation checks whether the target MessageSource can resolve a message for the given key, translating `NoSuchMessageException` accordingly. In contrast to ResourceBundle's default implementation in JDK 1.6, this does not rely on the capability to enumerate message keys.

Overrides:
  `containsKey` in class `ResourceBundle`

#### getKeys

    public Enumeration<String> getKeys()

This implementation throws `UnsupportedOperationException`, as a MessageSource does not allow for enumerating the defined message codes.

Specified by:
  `getKeys` in class `ResourceBundle`

#### getLocale

    public Locale getLocale()

This implementation exposes the specified Locale for introspection through the standard `ResourceBundle.getLocale()` method.

Overrides:
  `getLocale` in class `ResourceBundle`