public class LocalizableError extends SimpleError
Provides a mechanism for creating localizable error messages for presentation to the user. Uses ResourceBundles to provide the localization of the error message. Messages may contain one or more "replacement parameters ". Two replacement parameters are provided by default, they are the field name and field value, and are indices 0 and 1 respectively. To use replacement parameters a message must contain the replacement token {#} where # is the numeric index of the replacement parameter.
For example, to construct an error message with one additional replacement parameter which is the action the user was trying to perform, you might have a properties file entry like:
/action/MyAction.myErrorMessage={1} is not a valid {0} when trying to {2}
At runtime this might get replaced out to result in an error message for the user that looks like "Fixed is not a valid status when trying to create a new bug".
First looks for a resource with the action bean FQN prepended to the supplied message key. If
If that cannot be found then looks with the action path as a prefix instead of the FQN. Failing
that, the last attempt looks for a resource with the exact message key provided. This allows
developers to segregate their error messages by action without having to repeat the action
path in the ActionBean. For example a message constructed with
new LocalizableError("insufficientBalance")
might look for message resources with
the following keys:
com.myco.TransferActionBean.insufficientBalance
/account/Transfer.action.insufficientBalance
insufficientBalance
One last point of interest is where the user friendly field name comes from. Firstly an attempt is made to look up the localized name in the applicable resource bundle using the String beanClassFQN.fieldName where beanClassFQN is the fully qualified name of the bean class, and fieldName is the name of the field on the form. The second attempt is made with String actionPath.fieldName where actionPath is the action of the form in the JSP (or equally, the path given in the @UrlBinding annotation in the ActionBean class). Finally, the last attempt uses fieldName by itself.
MessageFormat
,
ResourceBundle
,
Serialized FormConstructor and Description |
---|
LocalizableError(java.lang.String messageKey,
java.lang.Object... parameter)
Creates a new LocalizableError with the message key provided, and optionally zero or more
replacement parameters to use in the message.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o)
Generated equals method that compares each field and super.equals().
|
java.lang.String |
getMessageKey() |
protected java.lang.String |
getMessageTemplate(java.util.Locale locale)
Method responsible for using the information supplied to the error object to find a
message template.
|
int |
hashCode()
Generated hashCode method.
|
getActionPath, getBeanclass, getFieldName, getFieldValue, getMessage, resolveFieldName, setActionPath, setBeanclass, setFieldName, setFieldValue
getMessage, getReplacementParameters
public LocalizableError(java.lang.String messageKey, java.lang.Object... parameter)
messageKey
- a key to lookup a message in the resource bundleparameter
- one or more replacement parameters to insert into the messageprotected java.lang.String getMessageTemplate(java.util.Locale locale)
getMessageTemplate
in class SimpleMessage
locale
- the Locale of the message template desiredpublic boolean equals(java.lang.Object o)
equals
in class SimpleError
o
- another object that is a SimpleMessage or subclass thereofpublic int hashCode()
hashCode
in class SimpleError
public java.lang.String getMessageKey()
? Copyright 2005-2006, Stripes Development Team.