ActionErrors的使用

 

ActionErrors的使用

功能:在指定的位置和一定的程序运行条件下显示资源文件内容
重要特色:显示资源文件内的HTML格式内容,这个区别于ActionMessage
缺点:编译出现提示错误,并且1.2以上版本已经没有了这个基础类ActionErrors

第一步:
在资源文件里面书写:
#错误信息提示
error.is.blank=<font color=red><b>不能为空字符串!</b></font>
error.not.number=<font color=red><b>请填写数字!</b></font>
error.is.null=<font color=red><b>不能为空!</b></font>
error.b_infor.remark.length=<font color=red><b><br>长度不能超过200个英文字符,或者100个汉字!</b></font>
在显示的时候:能将这里的按照HTML格式显示

第二步:
在属性文件里面Form增加属性
   private String isNull;
   private String remark_length;
   ……get 
   ……set

第三步:
在Action文件里面
ActionErrors m_errors = new ActionErrors();//共有变量
在方法里面:
   /**
      * 表[b_type]调用执行 增加 or 修改动作的 中转方法
      * @param mapping ActionMapping
      * @param form ActionForm
      * @param request HttpServletRequest
      * @param response HttpServletResponse
      * @return ActionForward
      */
     public ActionForward b_type_addmodify_do(ActionMapping mapping, ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response)
     {
         String whereId[] = new String[1];
         boolean f_exist_id = false;

         Basic_Set_Form m_Form = (Basic_Set_Form) form;
         HttpSession session = request.getSession(true);
         //超时验证
         if (session.getAttribute("login_name") == null)
         {
             return mapping.findForward("overtime");
         }
       
//以下是错误提示 =======================================================
       boolean back=false;
         m_errors.clear();

       //判断输入的是否为空,增加和修改都要判断这些值是否为空
        if(m_function.isNull(m_Form.getM_b_type()))
        {
           m_errors.add("isNull", new ActionError("error.is.null")); //isNull为属性
           saveErrors(request,m_errors);
           back=true;   
        }
        //判断是否超过指定长度
        if(m_Form.getM_b_remark().trim().length()>=m_remark_length)
        {
           m_errors.add("remark_length", new ActionError("error.b_infor.remark.length"));
           saveErrors(request,m_errors);
           back=true;   
        }
        if(back==true)
        {

           request.setAttribute("b_type",m_Form);
           return mapping.findForward("b_type_addmodify");
        }
//以下是错误提示 结束=======================================================

         String m_reporter = (String) session.getAttribute("login_name");
         //检验当前序号是否在数据库存在,如果不存在表示增加/如果存在表示修改
         whereId[0] = m_Form.getM_id();
         f_exist_id = m_comm.RecordExistId(whereId);

         if (f_exist_id==false)
         {   //增加记录
           return   b_type_add_done(mapping,form,request,m_reporter);
         }
         else //修改记录
         {
           return   b_type_modify_done(mapping,form,request,m_reporter);
         }
     }

第四步:
在JSP页面内
<html:errors property="isNull"/>
<html:errors property="remark_length"/>

说明:
这种方法被建议不使用,但是实际上其操作比ActionMessage方便多,JSP页面代码少

 

参考资料http://hi.baidu.com/steelblue/blog/item/d242042a1c6b34395343c12f.html

你可能感兴趣的:(action)