Welcome 微信登录

首页 / 软件开发 / JAVA / Struts1.x系列教程(2):简单的数据验证

Struts1.x系列教程(2):简单的数据验证2011-01-10 BlogJava 银河使者在进行完简单验证后,如果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="http://struts.apache.org/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="red"><html:errors property="errorUser" /></font>
</td>
</tr><tr /><tr />
<tr>
<td align="right">登录密码:</td>
<td>
<html:password property="password" styleClass="text" />
<font color="red"><html:errors property="errorPassword" /></font>
</td>
</tr><tr /><tr />
<tr>
<td align="right">重复登录密码:</td>
<td>
<html:password property="password1" styleClass="text" />
<font color="red"><html:errors property="errorPassword1" /></font>
</td>
</tr><tr /><tr />
<tr>
<td align="right">电子邮件:</td>
<td>
<html:text property="email" styleClass="text" />
<font color="red"><html:errors property="errorEmail" /></font>
</td>
</tr><tr /><tr />
<tr>
<td align="right"> <br> ${requestScope.success } </td>
<td align="left"> <br> <html:submit value=" 提交 " /> </td>
</tr>
</table>
</html:form>
</body>
</html>