package cn.org.rapid_framework.struts; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts.Globals; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; /** * @author badqiu */ public class StrutsMessageUtil { /** * ����Ƿ�����Ϣ * * @param request * @return * @roseuid 4398DA2A039E */ public static boolean hasMessage(HttpServletRequest request) { ActionMessages messages = getMessages(request); if (messages == null || messages.isEmpty()) return false; else return true; } /** * ����Ƿ��д��� * * @param request * @return * @roseuid 4398DA2A0358 */ public static boolean hasError(HttpServletRequest request) { ActionMessages errors = getErrors(request); if (errors == null || errors.isEmpty()) return false; else return true; } /** * @param request * @param key * @param error * @roseuid 4398DA2A0235 */ public static void addError(HttpServletRequest request, String key, ActionError error) { ActionMessages errors = getErrors(request); if (errors == null) { errors = new ActionErrors(); } errors.add(key, error); saveErrors(request, errors); } /** * @param request * @param key * @param errorKey */ public static void addError(HttpServletRequest request, String key, String errorKey){ ActionMessages errors = getErrors(request); if (errors == null) { errors = new ActionErrors(); } errors.add(key, new ActionError(errorKey)); saveErrors(request, errors); } /** * @param request * @param message * @roseuid 4398DA2A02A3 */ public static void addMessage(HttpServletRequest request,ActionMessage message) { addMessage(request, ActionMessages.GLOBAL_MESSAGE, message); } public static void addMessage(HttpServletRequest request,String msgKey) { addMessage(request, new ActionMessage(msgKey)); } /** * @param request * @param key * @param message * @roseuid 4398DA2A01B3 */ public static void addMessage(HttpServletRequest request, String key, ActionMessage message) { ActionMessages messages = getMessages(request); if (messages == null) { messages = new ActionMessages(); } messages.add(key, message); saveMessages(request, messages); } /** * @param request * @param error * @roseuid 4398DA2A02FE */ public static void addError(HttpServletRequest request, ActionError error) { addError(request, ActionErrors.GLOBAL_ERROR, error); } /** * @param request * @param error * @roseuid 4398DA2A02FE */ public static void addError(HttpServletRequest request, String msgKey) { addError(request, ActionErrors.GLOBAL_ERROR, new ActionError(msgKey)); } /** * @param request * @return org.apache.struts.action.ActionErrors * @roseuid 4398DA2A03E4 */ public static ActionMessages getErrors(HttpServletRequest request) { ActionErrors errors = null; HttpSession session = request.getSession(false); if (request.getAttribute(Globals.ERROR_KEY) != null) { errors = (ActionErrors) request.getAttribute(Globals.ERROR_KEY); } else if (session != null && session.getAttribute(Globals.ERROR_KEY) != null) { errors = (ActionErrors) session.getAttribute(Globals.ERROR_KEY); } else { errors = new ActionErrors(); saveErrors(request, errors); } return errors; } /** * Convenience method to initialize messages in a subclass. * * @param request the current request * @return the populated (or empty) messages */ public static ActionMessages getMessages(HttpServletRequest request) { ActionMessages messages = null; HttpSession session = request.getSession(); if (request.getAttribute(Globals.MESSAGE_KEY) != null) { messages = (ActionMessages) request.getAttribute(Globals.MESSAGE_KEY); } else if (session.getAttribute(Globals.MESSAGE_KEY) != null) { messages = (ActionMessages) session.getAttribute(Globals.MESSAGE_KEY); } else { messages = new ActionMessages(); saveMessages(request, messages); } return messages; } /** * <p>Save the specified error messages keys into the appropriate request * attribute for use by the <html:errors> tag, if any messages * are required. Otherwise, ensure that the request attribute is not * created.</p> * * @param request The servlet request we are processing * @param errors Error messages object * @since Struts 1.2 */ public static void saveErrors(HttpServletRequest request, ActionMessages errors) { // Remove any error messages attribute if none are required if ((errors == null) || errors.isEmpty()) { request.removeAttribute(Globals.ERROR_KEY); return; } // Save the error messages we need request.getSession().setAttribute(Globals.ERROR_KEY, errors); } /** * <p>Save the specified messages keys into the appropriate request * attribute for use by the <html:messages> tag (if * messages="true" is set), if any messages are required. Otherwise, * ensure that the request attribute is not created.</p> * * @param request The servlet request we are processing. * @param messages The messages to save. <code>null</code> or empty * messages removes any existing ActionMessages in the request. * * @since Struts 1.1 */ public static void saveMessages( HttpServletRequest request, ActionMessages messages) { // Remove any messages attribute if none are required if ((messages == null) || messages.isEmpty()) { request.removeAttribute(Globals.MESSAGE_KEY); return; } // Save the messages we need request.getSession().setAttribute(Globals.MESSAGE_KEY, messages); } }