struts注册信息验证的实现描述附带代码

struts注册信息验证的实现描述附带代码

今天学习了struts2的输入校验,对于输入校验struts2提供了两种实现方法:

1. 采用手工编写代码实现。

2. 基于XML配置方式实现

因为已经学过搭建struts2的环境,所以我就不搭建了。

下面写一个注册信息的输入校验

首先先建一个reg.jsp代码如下:

<%@page language="java" import="java.util.*"pageEncoding="utf-8"%>

<%

Stringpath = request.getContextPath();

StringbasePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <basehref="<%=basePath%>">

    <title>My JSP 'reg.jsp' startingpage</title>

   <meta http-equiv="pragma"content="no-cache">

   <meta http-equiv="cache-control"content="no-cache">

   <meta http-equiv="expires"content="0">   

   <meta http-equiv="keywords"content="keyword1,keyword2,keyword3">

   <meta http-equiv="description"content="This is my page">

   <!--

   <link rel="stylesheet"type="text/css" href="styles.css">

   -->

  </head>

  <body>

      <formaction="${pageContext.request.contextPath}/csdn/regist.action"  method="post">

      用户名:<inputtype="text" name="name" ><br/>

      密码:<inputtype="password" name="pass" ><br/>

      年龄:<inputtype="text" name="age" ><br/>

      生日:<inputtype="text" name="birth" ><br/>

      <inputtype="submit"  value="注册" >

      </form>

  </body>

</html>

 

然后再建一个一个RegistAction.action:

packagecn.csdn.hr.action;

importjava.util.Calendar;

importjava.util.Date;

importjava.util.regex.Pattern;

importcom.opensymphony.xwork2.ActionSupport;

publicclass RegistAction extends ActionSupport{

   /**

    *

    */

   private static final long serialVersionUID =1L;

   private String name;

   private String pass;

   private Integer age;

   private Date birth;

   public String getName() {

      return name;

   }

   public void setName(String name) {

      this.name = name;

   }

   public String getPass() {

      return pass;

   }

   public void setPass(String pass) {

      this.pass = pass;

   }

   public Integer getAge() {

      return age;

   }

   public void setAge(Integer age) {

      this.age = age;

   }

   public Date getBirth() {

      return birth;

   }

   public void setBirth(Date birth) {

      this.birth = birth;

   }

   public void validate(){

      System.out.println("进入validate方法进行校验");

      if(name!=null &&!Pattern.matches("\\w{4,25}", name.trim())){

        addFieldError("user", "您输入的用户名必须是字母和数字,且长度必须是4到25之间!");

      }

      if(pass!=null &&!Pattern.matches("\\w{4,25}", pass.trim())){

        addFieldError("pass", "您输入的密码必须是字母和数字,且长度必须是4到25之间!");

      }

      if(age>150|| age<0){

        addFieldError("age", "您输入的年龄必须是一个有效的年龄!");

      }

      Calendar end=Calendar.getInstance();

      end.set(2050,2,21);

      Calendar start=Calendar.getInstance();

      start.set(1900, 1, 1);

      if(birth!=null&&(birth.after(end.getTime())||birth.before(start.getTime()))){

        addFieldError("birth", "您输入的生日必须在有效的时间段内!");

      }

   }

   public void validateRegist(){

      System.out.println("进入validateRegist方法进行校验");

      if(name!=null &&!Pattern.matches("\\w{4,25}", name.trim())){

        addFieldError("user", "您输入的用户名必须是字母和数字,且长度必须是4到25之间!");

       

      }

      if(pass!=null &&!Pattern.matches("\\w{4,25}", pass.trim())){

        addFieldError("pass", "您输入的密码必须是字母和数字,且长度必须是4到25之间!");

       

      }

      if(age>150|| age<=0 &&age!=null){

        addFieldError("age", "您输入的年龄必须是一个有效的年龄!");

       

      }

      Calendar end=Calendar.getInstance();

      end.set(2050,2,21);

      Calendar start=Calendar.getInstance();

      start.set(1900, 1, 1);

      if(birth!=null&&(birth.after(end.getTime())||birth.before(start.getTime()))){

       

        addFieldError("birth", "您输入的生日必须在有效的时间段内!");

      }

     

   }

   public String regist(){

     

      return SUCCESS;

   } 

}

RegistAction-validation.xml:

<!DOCTYPEvalidators PUBLIC

      "-//ApacheStruts//XWork Validator 1.0.3//EN"

      "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

<validators>

   <field name="name">

   <field-validatortype="requiredstring">

      <paramname="trim">true</param>

      <message>必须输入名字</message>

   </field-validator>

   <field-validatortype="regex">

   <paramname="expression"><![CDATA[(\w{4,25})]]></param>

   <message>您输入的用户名必须是字母和数字,且长度必须是4到25之间!</message>

   </field-validator>

   </field>

<fieldname="pass">

   <field-validatortype="requiredstring">

      <paramname="trim">true</param>

      <message>必须输入密码</message>

   </field-validator>

   <field-validatortype="regex">

   <paramname="expression"><![CDATA[(\w{4,25})]]></param>

   <message>您输入的密码必须是字母和数字,且长度必须是4到25之间!</message>

   </field-validator>

   </field>

<fieldname="age">

   <field-validator type="integer">

      <paramname="min">1</param>

      <paramname="max">150</param>

      <message>年纪必须在1到150之间</message>

   </field-validator>

   </field>

   <field name="birth">

   <field-validator type="date">

      <paramname="min">1900-01-01</param>

      <param name="max">2050-02-21</param>

      <message>年纪必须在${min}到${max}之间</message>

   </field-validator>

   </field>

</validators>

配置文件Struts.xml:

<?xmlversion="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC

   "-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"

   "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   <constantname="struts.custom.i18n.resources"value="csdn"></constant>

 

   <!-- <includefile="struts-validate.xml"></include>*/-->

   <package name="ss"extends="struts-default" namespace="/csdn">

<actionname="regist" class="cn.csdn.hr.action.RegistAction"

        method="regist">

 

        <result>../reg.jsp</result>

        <resultname="input">/WEB-INF/error.jsp</result>

      </action>

      </package>

</struts>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值