Put this in a util class and call evaluateMessage():
/**
* <p>Evaluate the given message resource key.</p>
*
* @param messageKey the name of the resource entry to
retrieve * @param bundle The key specified in the
* <code><message-resources></code> element for the
* resource bundle to use
* @param request the request being processed
* @param servletContext the current [EMAIL PROTECTED]
ServletContext} * @return the value of paramName from the
message resources */
public String evaluateMessage(
String messageKey,
String bundle,
HttpServletRequest request,
ServletContext servletContext) {
// get the message resources
MessageResources resources;
if (bundle != null) {
resources = getResources(bundle, request,
servletContext);
} else {
resources = getResources(request);
}
// evaluate the message
String messageString = getMessage(messageKey, null,
request,
resources);
// add it to the redirect parameters
if ((messageString != null) && (messageString.length()
> 0)) {
return messageString;
}
return null;
}
/**
* <p>Look for the ActionMessage in the provided
MessageResources.</p> *
* @param messageKey the key to look for
* @param args the arguments to be used in evaluating the
message * @param request the request being processed
* @param resources the application's message resources
* @return the message formed from the given ActionMessage
*/
protected String getMessage(String messageKey,
Object[] args,
HttpServletRequest request,
MessageResources resources) {
if (messageKey == null) {
//log.warn("Call to getMessage() with a null
messageKey."); return null;
}
String result = null;
try {
// first, get the locale from the request
Locale userLocale = getLocale(request);
// then, get the message
if (args == null) {
result = (resources.getMessage(userLocale,
messageKey));
} else {
result = (resources.getMessage(userLocale,
messageKey,
args));
}
} catch (Exception e) {
//log.error("Exception while looking for
message.", e);
}
return result;
}
/**
* <p>Return the default message resources for the current
module.</p> *
* @param request The servlet request we are processing
*/
protected MessageResources getResources(HttpServletRequest
request) {
return ((MessageResources)
request.getAttribute(Globals.MESSAGES_KEY));
}
/**
* <p>Return the specified message resources for the
current module.</p> *
* @param bundle The key specified in the
* <code><message-resources></code> element for the
* requested bundle
* @param request The servlet request we are processing
* @param servletContext the current [EMAIL PROTECTED]
ServletContext} */
protected MessageResources getResources(String bundle,
HttpServletRequest
request,
ServletContext
servletContext) {
// Identify the current module
ModuleConfig moduleConfig =
ModuleUtils.getInstance().getModuleConfig(
request, servletContext);
// Return the requested message resources instance
return ((MessageResources) servletContext.getAttribute
(bundle + moduleConfig.getPrefix()));
}