首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

ActionErrors的应用

2012-07-04 
ActionErrors的使用?ActionErrors的使用功能:在指定的位置和一定的程序运行条件下显示资源文件内容重要特

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

热点排行