| java.lang.Object org.apache.struts.util.MessageResources org.apache.struts.util.PropertyMessageResources
PropertyMessageResources | public class PropertyMessageResources extends MessageResources (Code) | | Concrete subclass of MessageResources that reads message keys
and corresponding strings from named property resources in a similar manner
(see modes below) that java.util.PropertyResourceBundle does. The
base property defines the base property resource name, and
must be specified. IMPLEMENTATION NOTE - This class
trades memory for speed by caching all messages located via generalizing
the Locale under the original locale as well. This results in specific
messages being stored in the message cache more than once, but improves
response time on subsequent requests for the same locale + key
combination.
Operating Modes
This implementation can be configured to operate in one of three modes:
- 1. Default - default, backwardly compatible, Struts behaviour (i.e. the way
its always worked).
- 2. JSTL - compatible with how JSTL finds messages
(fix for STR-2925)
- 3. Resource - compatible with how Java's
PropertyResourceBundle
finds messages (fix for
STR-2077)
1. Default Mode
Default mode is the way this implementation has always operated. It searches
for a message key for property resources in the following sequence:
base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
base + "_" + localeLanguage + "_" + localeCountry
base + "_" + localeLanguage
base + "_" + default locale
base
This mode is the default and requires no additional configuration.
2. JSTL Mode
JSTL mode is compatible with how JSTL operates and the default Locale
is not used when looking for a message key. JSTL mode searches for
a message key for property resources in the following sequence:
base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
base + "_" + localeLanguage + "_" + localeCountry
base + "_" + localeLanguage
base
Configure PropertyMessageResources to operate in this mode by
specifying a value of JSTL for the mode
key in your struts-config.xml :
<message-resources parameter="mypackage.MyMessageResources">
<set-property key="mode" value="JSTL"/>
</message-resources>
3. Resource Mode
Resource mode is compatible with how Java's PropertyResourceBundle
operates. Resource mode searches first through the specified Locale's language,
country and variant, then through the default Locale's language,
country and variant and finally using just the base :
base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
base + "_" + localeLanguage + "_" + localeCountry
base + "_" + localeLanguage
base + "_" + defaultLanguage + "_" + defaultCountry + "_" + defaultVariant
base + "_" + defaultLanguage + "_" + defaultCountry
base + "_" + defaultLanguage
base
Configure PropertyMessageResources to operate in this mode by
specifying a value of resource for the mode
key in your struts-config.xml :
<message-resources parameter="mypackage.MyMessageResources">
<set-property key="mode" value="resource"/>
</message-resources>
version: $Rev: 480549 $ $Date: 2006-11-29 06:16:15 -0600 (Wed, 29 Nov 2006) $ |
Field Summary | |
protected HashMap | locales The set of locale keys for which we have already loaded messages, keyed
by the value calculated in localeKey() . | final protected static Log | log The Log instance for this class. | protected HashMap | messages The cache of messages we have accumulated over time, keyed by the value
calculated in messageKey() . |
Method Summary | |
public String | getMessage(Locale locale, String key) Returns a text message for the specified key, for the specified or default
Locale. | protected synchronized void | loadLocale(String localeKey) Load the messages associated with the specified Locale key. | public void | setMode(String mode) Set the compatibility mode this implementation uses for message lookup. |
locales | protected HashMap locales(Code) | | The set of locale keys for which we have already loaded messages, keyed
by the value calculated in localeKey() .
|
log | final protected static Log log(Code) | | The Log instance for this class.
|
messages | protected HashMap messages(Code) | | The cache of messages we have accumulated over time, keyed by the value
calculated in messageKey() .
|
PropertyMessageResources | public PropertyMessageResources(MessageResourcesFactory factory, String config)(Code) | | Construct a new PropertyMessageResources according to the specified
parameters.
Parameters: factory - The MessageResourcesFactory that created us Parameters: config - The configuration parameter for this MessageResources |
PropertyMessageResources | public PropertyMessageResources(MessageResourcesFactory factory, String config, boolean returnNull)(Code) | | Construct a new PropertyMessageResources according to the specified
parameters.
Parameters: factory - The MessageResourcesFactory that created us Parameters: config - The configuration parameter for thisMessageResources Parameters: returnNull - The returnNull property we should initialize with |
getMessage | public String getMessage(Locale locale, String key)(Code) | | Returns a text message for the specified key, for the specified or default
Locale. A null string result will be returned by this method if no relevant
message resource is found for this key or Locale, if the
returnNull property is set. Otherwise, an appropriate
error message will be returned. This method must be implemented by
a concrete subclass.
Parameters: locale - The requested message Locale, or null forthe system default Locale Parameters: key - The message key to look up text message for the specified key and locale |
loadLocale | protected synchronized void loadLocale(String localeKey)(Code) | | Load the messages associated with the specified Locale key. For this
implementation, the config property should contain a fully
qualified package and resource name, separated by periods, of a series
of property resources to be loaded from the class loader that created
this PropertyMessageResources instance. This is exactly the same name
format you would use when utilizing the java.util.PropertyResourceBundle
class.
Parameters: localeKey - Locale key for the messages to be retrieved |
setMode | public void setMode(String mode)(Code) | | Set the compatibility mode this implementation uses for message lookup.
Parameters: mode - JSTL for JSTL compatibility,resource for PropertyResourceBundle compatibility ordefault for Struts backward compatibility. |
Methods inherited from org.apache.struts.util.MessageResources | protected String escape(String string)(Code)(Java Doc) public String getConfig()(Code)(Java Doc) public MessageResourcesFactory getFactory()(Code)(Java Doc) public String getMessage(String key)(Code)(Java Doc) public String getMessage(String key, Object[] args)(Code)(Java Doc) public String getMessage(String key, Object arg0)(Code)(Java Doc) public String getMessage(String key, Object arg0, Object arg1)(Code)(Java Doc) public String getMessage(String key, Object arg0, Object arg1, Object arg2)(Code)(Java Doc) public String getMessage(String key, Object arg0, Object arg1, Object arg2, Object arg3)(Code)(Java Doc) abstract public String getMessage(Locale locale, String key)(Code)(Java Doc) public String getMessage(Locale locale, String key, Object[] args)(Code)(Java Doc) public String getMessage(Locale locale, String key, Object arg0)(Code)(Java Doc) public String getMessage(Locale locale, String key, Object arg0, Object arg1)(Code)(Java Doc) public String getMessage(Locale locale, String key, Object arg0, Object arg1, Object arg2)(Code)(Java Doc) public String getMessage(Locale locale, String key, Object arg0, Object arg1, Object arg2, Object arg3)(Code)(Java Doc) public static synchronized MessageResources getMessageResources(String config)(Code)(Java Doc) public boolean getReturnNull()(Code)(Java Doc) public boolean isEscape()(Code)(Java Doc) public boolean isPresent(String key)(Code)(Java Doc) public boolean isPresent(Locale locale, String key)(Code)(Java Doc) protected String localeKey(Locale locale)(Code)(Java Doc) public void log(String message)(Code)(Java Doc) public void log(String message, Throwable throwable)(Code)(Java Doc) protected String messageKey(Locale locale, String key)(Code)(Java Doc) protected String messageKey(String localeKey, String key)(Code)(Java Doc) public void setEscape(boolean escape)(Code)(Java Doc) public void setReturnNull(boolean returnNull)(Code)(Java Doc)
|
|
|