(四)struts之ActionForm的validator方法验证

现在这个验证呢,跟第一篇文章的那个还有所不一样,之前的是配置资源文件和配置验证文件的做法,这次呢是在ActionForm里面的一个validator方法中纯手工写代码的方式,实现的登录验证效果一样

login.jsp

 

Html代码   收藏代码
  1. <span style="font-size: large;"><%@ page pageEncoding="UTF-8"%>  
  2. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4. <html>  
  5.   <head>  
  6.     <title>Struts第一个应用:登录验证</title>  
  7.   </head>  
  8.     
  9.   <body>  
  10.     <h3>Struts第一个应用:登录验证</h3><hr/>  
  11.     <ul style="color:red">  
  12.     <html:messages id="msg">  
  13.         <li>${msg}</li>  
  14.     </html:messages>  
  15.     </ul>  
  16.     <form id="myForm" name="myForm" action="login.do" method="post">  
  17.         <table border="1" width="600px">  
  18.             <tr>  
  19.                 <td>登录名</td>  
  20.                 <td><input type="text" name="loginname"/></td>  
  21.             </tr>  
  22.             <tr>  
  23.                 <td>密码</td>  
  24.                 <td><input type="password" name="pwd"/></td>  
  25.             </tr>  
  26.             <tr>  
  27.                 <td colspan="2" align="center">  
  28.                     <input type="submit" value="提交"/>&nbsp;  
  29.                     <input type="reset" value="重置"/>  
  30.                 </td>  
  31.             </tr>  
  32.         </table>  
  33.     </form>  
  34.       
  35.   </body>  
  36. </html>  
  37. </span>  

 

 LoginForm.java

 

Java代码   收藏代码
  1. <span style="font-size: large;">package com.javacrazyer.web.formbean;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4.   
  5. import org.apache.struts.action.ActionErrors;  
  6. import org.apache.struts.action.ActionForm;  
  7. import org.apache.struts.action.ActionMapping;  
  8. import org.apache.struts.action.ActionMessage;  
  9.   
  10. /** 
  11.  * 用来收集客户端提交数据. 
  12.  * 要收集数据的属性的名一定要跟请求参数名相同 
  13.  *  
  14.  */  
  15. public class LoginForm extends ActionForm {  
  16.       
  17.     private static final long serialVersionUID = 6619272689058619128L;  
  18.   
  19.     private String loginname;  
  20.       
  21.     private String pwd;  
  22.       
  23.     @Override  
  24.     public void reset(ActionMapping mapping, HttpServletRequest request) {  
  25.         System.out.println("*******调用LoginForm的reset方法");  
  26.         this.pwd = null;  
  27.         this.loginname = null;  
  28.           
  29.         super.reset(mapping, request);  
  30.     }  
  31.   
  32.     @Override  
  33.     public ActionErrors validate(ActionMapping mapping,  
  34.             HttpServletRequest request) {  
  35.         System.out.println("调用LoginForm的validate方法------");  
  36.         //如果本方法返回null或ActionErrors中没有存放任何对象,表示验证通过。否则验证失败,跳转到对应<action>元素中input属性指定的URL  
  37.         ActionErrors errors = new ActionErrors();  
  38.         if(this.loginname == null || "".equals(this.loginname)){  
  39.             ActionMessage msg = new ActionMessage("用户名不能为空",false);  
  40.             errors.add(ActionErrors.GLOBAL_MESSAGE, msg);  
  41.         }  
  42.           
  43.         if(this.pwd == null || "".equals(this.pwd)){  
  44.             ActionMessage msg = new ActionMessage("密码不能为空",false);  
  45.             errors.add(ActionErrors.GLOBAL_MESSAGE, msg);  
  46.         }  
  47.           
  48.         return errors;  
  49.     }  
  50.   
  51.     public LoginForm(){  
  52.         System.out.println("调用默认构造方法创建出LoginForm的一个实例");  
  53.     }  
  54.   
  55.     public String getLoginname() {  
  56.         return loginname;  
  57.     }  
  58.   
  59.     public void setLoginname(String loginname) {  
  60.         this.loginname = loginname;  
  61.         System.out.println("调用setLoginname()方法");  
  62.     }  
  63.   
  64.     public String getPwd() {  
  65.         return pwd;  
  66.     }  
  67.   
  68.     public void setPwd(String pwd) {  
  69.         this.pwd = pwd;  
  70.         System.out.println("调用setPwd()方法");  
  71.     }  
  72. }  
  73. </span>  

 WEB-INF/struts-config.xml

 

Java代码   收藏代码
  1. <span style="font-size: large;"><?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3. <!DOCTYPE struts-config PUBLIC  
  4.           "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"  
  5.           "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">  
  6.   
  7. <struts-config>  
  8.   
  9. <!-- ================================================ Form Bean Definitions -->  
  10.     <form-beans>  
  11.         <form-bean name="loginForm" type="com.javacrazyer.web.formbean.LoginForm"/>  
  12.         <form-bean name="regForm" type="com.javacrazyer.web.formbean.RegisterForm"/>  
  13.     </form-beans>  
  14.   
  15. <!-- =========================================== Action Mapping Definitions -->  
  16.     <action-mappings>  
  17.     <action path="/login" name="loginForm" type="com.javacrazyer.web.action.LoginAction" validate="true"       
  18.            input="/index.jsp">  
  19.             <forward name="succ" path="/login_success.jsp"/>  
  20.             <forward name="failure" path="/login_failure.jsp"/>  
  21.         </action>  
  22.     </action-mappings>  
  23. </struts-config>  
  24. </span>  

 这里的示例就不要用到validator.xml和validator-rules.xml了,也不需要资源文件

 关于web.xml的配置、LoginAction和其他JSP页面都与第一篇文章中的一样,这里就不写了,实现的效果也就是第一篇文章中所展示的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值