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>&lt;message-resources&gt;</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>&lt;message-resources&gt;</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()));

    }
    


On Wed, 13 Oct 2004 15:24:27 +0000 (UTC), Alan Pocklington
<[EMAIL PROTECTED]> wrote:
> Hi,
> 
> I want my action to read a property from the MessageResources.properties
> file in the same way that ActionMessages does.  What's the simplest code I
> can use to retreive a particular property's value?
> 
> Thanks in advance,
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to