弹出错误对话框alert('error')--struts



唉!很累!就把代码贴出来!希望对初学者有所帮助! 

简要说明:addError方法用于添加要弹出的消息或错误!

                    addMsg方法用于添加消息或错误!

  1. 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();   
    }  

  2. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值