Package 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`
  - `org.springframework.web.servlet.support.JstlUtils#exposeLocalizationContext`

## 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
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

Modifier and Type
Method
Description
`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, getBaseBundleName, getBundle, getBundle, 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 Details

### 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 Details

### handleGetObject

@Nullable 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`