唉!很累!就把代码贴出来!希望对初学者有所帮助!
简要说明:addError方法用于添加要弹出的消息或错误!
addMsg方法用于添加消息或错误!
-
Java代码
package com.dotease.common; import javax.servlet.http.HttpServletRequest; import org.apache.struts.Globals; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.Action; import org.apache.struts.action.ActionMessages; import org.apache.struts.util.MessageResources; import java.util.ArrayList; /** * @author Administrato 2007-10-9 *2007-10-9 */ public class Msg { /** * save the error messages! This like Action.saveErrors(); * @param request * @param errors */ protected static final void saveErrors(HttpServletRequest request,ActionMessages errors) { if ((errors == null) || errors.isEmpty()) { request.removeAttribute(Globals.ERROR_KEY); return; } // Save the error messages we need request.setAttribute(Globals.ERROR_KEY, errors); } /** * 保存弹出消息到Request,使用默认的key:showError * 此信息在前台设置后,弹出! * 建议: 放在紧挨着的地方! * 适合有错误,就返回! 如果多次调用,会覆盖上次的Errors * @param request * @param ActionMessage * */ public static final void saveError(HttpServletRequest request,ActionMessage error) { MessageResources msgResource = ((MessageResources) request.getAttribute(Globals.MESSAGES_KEY)); String msg=msgResource.getMessage(error.getKey()); int length=0; if(error.getValues()!=null) length=error.getValues().length; for(int i=0;i { msg=msg.replace("{"+i+"}", error.getValues()[i].toString()); } ActionMessages errors = new ActionMessages(); errors.add("showError",new ActionMessage("showError",msg)); saveErrors(request,errors); } /** * 把ActionMessage对象转化为文本字符串 * @param request * @param msg * @return */ public static final String msgToString(HttpServletRequest request,ActionMessage error) { MessageResources msgResource = ((MessageResources) request.getAttribute(Globals.MESSAGES_KEY)); String msg=msgResource.getMessage(error.getKey()); msg=filterString(msg); int length=0; if(error.getValues()!=null) length=error.getValues().length; for(int i=0;i { msg=msg.replace("{"+i+"}", error.getValues()[i].toString()); } return msg; } /** * 返回MessageResources对象,通过它可以获得配置资源 * @param request * @return */ public static final MessageResources getMsgResources(HttpServletRequest request) { return ((MessageResources) request.getAttribute(Globals.MESSAGES_KEY)); } protected static final ActionMessages getErrors(HttpServletRequest request) { ActionMessages errors = (ActionMessages)request.getAttribute(Globals.ERROR_KEY); if(errors == null) errors = new ActionMessages(); return errors; } /** * 保存弹出消息到Request,使用默认的key:showError * @param request * @param error */ public static final void addError(HttpServletRequest request,ActionMessage error) { ActionMessages errors=getErrors(request); errors.add("showError", new ActionMessage("showError",msgToString(request,error))); saveErrors(request,errors); } /** * 保存弹出消息到Request,使用默认的key:showError * @param request * @param key */ public static final void addError(HttpServletRequest request,String key) { ActionMessages errors=getErrors(request); String temp=key; temp=getMsgResources(request).getMessage(key); if(temp!=null) key=temp; errors.add("showError", new ActionMessage("showError",key)); saveErrors(request,errors); } public static final void addMsg(HttpServletRequest request,String key,ActionMessage error) { ActionMessages errors=getErrors(request); errors.add(key, error); saveErrors(request,errors); } public static final void addMsg(HttpServletRequest request,String key,String value) { ActionMessages errors=getErrors(request); errors.add(key, new ActionMessage("showMsg",value)); saveErrors(request,errors); } public static final String filterString(String s) { if(s.indexOf("<")==-1) return s; int len=s.length(); int ps=s.indexOf("<"); int pe=s.indexOf(">"); s=s.substring(0, ps)+s.substring(pe+1,s.length()); return filterString(s); } //error.DBError 数据库错误提示 public static final void addError(HttpServletRequest request,Exception e) { ActionMessages errors=getErrors(request); String temp=getMsgResources(request).getMessage("error.DBError"); //数据库错误提示 errors.add("showError", new ActionMessage("showError",temp+e.getMessage())); saveErrors(request,errors); e.printStackTrace(); }
- ApplicationResources.properties
showError= <script language="JavaScript">alert('{0}')</script>
3.使用示例:
Msg.addError(request, "你还没有办理公司××业务!");
Msg.saveError(request, new ActionMessage("mccc.failmsg"));
Msg.addError(request, new ActionMessage("mccc.lessmczh"));
显示所有的: <html:errors/>
显示指定的错误!
<html:errors property="showError"/>
太累!没有详细注释,说明!见谅!
转载自:http://fencer911.iteye.com/blog/150075