struts验证详解
[日期]: 2006-07-12 [来源]: [作者]:
Struts的出现就是为了全面消除服务器断程序的脚本嵌套,全面分层,通常我们的表单在提交时都需要进行数据验证,而这在以前通常是用客户端的javascript进行过滤后再由服务器端的脚本进行验证,这样的缺点是移植性很差,每次都需要重新编写源程序,而struts框架则提供了一个很好的验证机制,它不需要再编写脚本,而是通过验证器进行验证.
struts验证又分为2种,一种是在ActionForm bean表单属性JavaBean的validate()方法中定义,在服务器断验证;另外一种则是通过验证器分别在客户端和服务器端进行双层验证.
1.在ActionForm Bean中验证:
首先需要介绍Struts的工作原理:
(1).用户从表单提交数据,JSF表现为:<html:form action="/login">,普通JSP表现为:<form action="/login.do">
(2),程序将通过Struts配置文件(既ActionServlet)struts-config.xml的<action>节点下的path属性的值与form的action属性值进行匹配,如果配上了,程序将通过本action的name属性所对应的值与<form-bean>节点的name进行匹配,如果成功,则通过<form-bean>的type属性值找到ActionForm bean的类文件.
(3)如果action中的validate属性设置为true或yes的话,程序将调用ActionForm bean的public ActionErrors validate(ActionMapping mapp,HttpServletRequest req)方法进行验证,结果返回一个ActionErrors类型以便我们将其catch住.
(4)程序将ActionForm的各个属性做为参数传回给Action,Action再调用具体业务处理的JavaBean进行商业活动,再将程序转向View层的显示页面
具体方法:
1.创建表单login.jsp 由JSF实现
<%@taglig uri="http://jakarta.apache/struts-bean" prefix="bean"%>
<%@taglib uri=http://jakarta.apache/struts-html prefix="html" %>
<html:html>
<body>
<!--捕获验证信息-->
<html:errors name="loginName"/>
<html:form action="/login">
userName:<html:text property="userName"/>
passWord:<html:password property="passWord" redisplay="false"/>
<html:submit/><html:reset/>
</html:form>
<body>
</html:html>
2.建立ActionForm类 loginForm.java
package com.liuhao.struts;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionErrors;