Struts1.x系列教程(2):简单的数据验证.docx
文本预览下载声明
上一篇: HYPERLINK /nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/13/251101.html Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序
??? 简单验证从本质上说就是在服务端来验证客户端提交的form中的数据。这种验证只是对form中的数据规则进行检查,如必须输入用户ID,价格不能小于0或是对email格式的验证。在这个验证过程中,并不需要访问数据库。因此,简单验证需要在用户提交form后,并且在服务器处理form中的数据之前进行。
??? 在进行完简单验证后,如果form中的数据不合法,程序就会forward到指定的JSP页(一般是包含form的页面),并显示相应的错误信息。如果form中的数据完全正确,程序就会继续执行。
一、在validate方法中进行简单验证
??? 在上一篇文章中我们知道,Struts1.x通过ActionForm的子类来封装了客户端提交的form中的数据。而服务端程序只需要通过ActionForm的子类的对象实例就可以访问form中的数据,而如果不使用ActionForm类,就必须通过request对象来获得form中的数据。通过这种封装机制可以使代码更容易理解。然而,ActionForm类不仅可以封装form中的数据,还可以通过ActionForm类的validate方法来验证form中的数据。validate方法的定义如下:
public?ActionErrors?validate(ActionMapping?mapping,?HttpServletRequest?request)
??? 当客户端向服务端提交form后,Servlet引擎首先通过ActionForm的子类的对象实例装载form中的数据,然后再调用validate方法进行验证。validate方法返回了一个ActionErrors对象。这个对象相当于一个Map,如果ActionErrors中没有错误信息,Servlet引擎就认为form中的数据是正确的,这时服务端程序就会继续执行。如果ActionErrors中有错误信息,程序就会跳转到指定的错误页面。下面让我们通过一个完整的例子来演示一下如何通过validate方法来验证form中的数据。实现这个例子需要如下五步:【第1步】建立JSP页面
??? 在这一步将建立一个叫simpleValidation.jsp的页面,这个JSP页面用于采集用户的输入信息。在samples工程目录中建立一个simpleValidation.jsp文件,并编写如下的代码:
??%@?page?pageEncoding=GBK%??%@?taglib?uri=/tags-html?prefix=html%??html??????head??????????title注册信息(测试简单验证)/title??????????style?type=text/css??.text?{??????height:?20px;??????width:?160px;??}??/style??????/head??????body??????????html:form?action=simpleValidation??????????????table?width=100%??????????????????tr??????????????????????td?align=right?width=45%?用户名:/td??????????????????????td?width=55%??????????????????????????html:text?property=user?styleClass=text?/??????????????????????????font?color=redhtml:errors?property=errorUser?//font??????????????????????/td??????????????????/trtr?/tr?/??????????????????tr??????????????????????td?align=right登录密码:/td??????????????????????td??????????????????????????html:password?property=password?styleClass=text?/??????????????????????????font?color=redhtml:errors?property=errorPassword?//
显示全部