public abstract class

MessageSourceSupport

extends Object
java.lang.Object
   ↳ org.springframework.context.support.MessageSourceSupport
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Base class for message source implementations, providing support infrastructure such as java.text.MessageFormat handling but not implementing concrete methods defined in the MessageSource.

AbstractMessageSource derives from this class, providing concrete getMessage implementations that delegate to a central template method for message code resolution.

Summary

Fields
protected final Log logger Logger available to subclasses
Public Constructors
MessageSourceSupport()
Public Methods
void setAlwaysUseMessageFormat(boolean alwaysUseMessageFormat)
Set whether to always apply the MessageFormat rules, parsing even messages without arguments.
Protected Methods
MessageFormat createMessageFormat(String msg, Locale locale)
Create a MessageFormat for the given message and Locale.
String formatMessage(String msg, Object[] args, Locale locale)
Format the given message String, using cached MessageFormats.
boolean isAlwaysUseMessageFormat()
Return whether to always apply the MessageFormat rules, parsing even messages without arguments.
String renderDefaultMessage(String defaultMessage, Object[] args, Locale locale)
Render the given default message String.
Object[] resolveArguments(Object[] args, Locale locale)
Template method for resolving argument objects.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected final Log logger

Logger available to subclasses

Public Constructors

public MessageSourceSupport ()

Public Methods

public void setAlwaysUseMessageFormat (boolean alwaysUseMessageFormat)

Set whether to always apply the MessageFormat rules, parsing even messages without arguments.

Default is "false": Messages without arguments are by default returned as-is, without parsing them through MessageFormat. Set this to "true" to enforce MessageFormat for all messages, expecting all message texts to be written with MessageFormat escaping.

For example, MessageFormat expects a single quote to be escaped as "''". If your message texts are all written with such escaping, even when not defining argument placeholders, you need to set this flag to "true". Else, only message texts with actual arguments are supposed to be written with MessageFormat escaping.

See Also

Protected Methods

protected MessageFormat createMessageFormat (String msg, Locale locale)

Create a MessageFormat for the given message and Locale.

Parameters
msg the message to create a MessageFormat for
locale the Locale to create a MessageFormat for
Returns
  • the MessageFormat instance

protected String formatMessage (String msg, Object[] args, Locale locale)

Format the given message String, using cached MessageFormats. By default invoked for passed-in default messages, to resolve any argument placeholders found in them.

Parameters
msg the message to format
args array of arguments that will be filled in for params within the message, or null if none
locale the Locale used for formatting
Returns
  • the formatted message (with resolved arguments)

protected boolean isAlwaysUseMessageFormat ()

Return whether to always apply the MessageFormat rules, parsing even messages without arguments.

protected String renderDefaultMessage (String defaultMessage, Object[] args, Locale locale)

Render the given default message String. The default message is passed in as specified by the caller and can be rendered into a fully formatted default message shown to the user.

The default implementation passes the String to formatMessage, resolving any argument placeholders found in them. Subclasses may override this method to plug in custom processing of default messages.

Parameters
defaultMessage the passed-in default message String
args array of arguments that will be filled in for params within the message, or null if none.
locale the Locale used for formatting
Returns
  • the rendered default message (with resolved arguments)

protected Object[] resolveArguments (Object[] args, Locale locale)

Template method for resolving argument objects.

The default implementation simply returns the given argument array as-is. Can be overridden in subclasses in order to resolve special argument types.

Parameters
args the original argument array
locale the Locale to resolve against
Returns
  • the resolved argument array