Struts 2 的输入校验

输入校验:要求用户名必须是字母和数字的组合且长度在(4-15)范围内。密码必须是字母和数字的组合且长度在(6-15)范围内,两次输入密码要相同。年龄必须为整数且在(1-99)范围内。PS:输入校验也可以使用JavaScript,或者jQuery来做,貌似更简单一点。。。

开发环境:
IntelliJ IDEA 14.1.3
java version “1.7.0_65”
Apache Tomcat 7.0
Struts 2.3
Win7 64位

输入校验效果图如下:

这里写图片描述

表单未输入任何内容,点击提交:

这里写图片描述

第二次输入密码与上一次不同,点击提交:

这里写图片描述

输入正确:

这里写图片描述

代码组织结构:

这里写图片描述

源码如下:index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title></title>
  </head>
  <body>
      <s:form action="validate1">
        <s:textfield name="username" label="用户名" required = "true"/>
        <s:textfield name="pass1" label="输入密码" required = "true"/>
        <s:textfield name="pass2" label="重复密码" required = "true"/>
        <s:textfield name="age" label="年龄" required = "true"/>
        <s:submit value="提交"/>
      </s:form>
  </body>
</html>

welcome.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
    欢迎!!!
</body>
</html>

Regist.java

package com.jl.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by root on 2016/9/9.
 */
public class Regist extends ActionSupport{
    private String username;//创建用户名属性
    private String pass1;//创建密码属性
    private String pass2;//创建确认密码属性
    private int age;//创建年龄属性

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPass1() {
        return pass1;
    }

    public void setPass1(String pass1) {
        this.pass1 = pass1;
    }

    public String getPass2() {
        return pass2;
    }

    public void setPass2(String pass2) {
        this.pass2 = pass2;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

校验规则文件Regist-validation.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator 1.0.3//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
    <!-- 用户名校验区域 -->
    <field name="username">
        <!-- 校验用户名不能为空 -->
        <field-validator type="requiredstring">
            <message>必须输入用户名</message>
        </field-validator>
        <!-- 校验用户名格式 -->
        <field-validator type="regex">
            <param name="regex">
                <![CDATA[(\w{4,15})]]>
            </param>
            <message>用户名必须是字母和数字的组合且长度在(4-15)范围内</message>
        </field-validator>
    </field>
    <!-- 密码校验区域 -->
    <field name="pass1">
        <!-- 校验密码不能为空 -->
        <field-validator type="requiredstring">
            <message>必须输入密码</message>
        </field-validator>
        <!-- 校验密码格式 -->
        <field-validator type="regex">
            <param name="regex">
                <![CDATA[(\w{6,15})]]>
            </param>
            <message>密码必须是字母和数字的组合且长度在(6-15)范围内</message>
        </field-validator>
    </field>
    <!-- 重复输入密码校验区域 -->
    <field name="pass2">
        <!-- 重复输入密码不能为空 -->
        <field-validator type="requiredstring">
            <message>必须重复输入密码</message>
        </field-validator>
        <!-- 校验重复输入密码格式 -->
        <field-validator type="regex">
            <param name="regex">
                <![CDATA[(\w{6,15})]]>
            </param>
            <message>密码必须是字母和数字的组合且长度在(6-15)范围内</message>
        </field-validator>
        <!-- 校验两次输入密码的一致性 -->
        <field-validator type="fieldexpression">
            <param name="expression">
                <![CDATA[(pass2.equals(pass1))]]>
            </param>
            <message>两次输入密码不符</message>
        </field-validator>
    </field>
    <!-- 年龄校验区域 -->
    <field name="age">
        <!-- 校验年龄不能为空 -->
        <field-validator type="required">
            <message>必须输入年龄</message>
        </field-validator>
        <!-- 校验年龄范围 -->
        <field-validator type="int">
            <param name="min">1</param>
            <param name="max">99</param>
            <message>年龄必须为整数且在(1-99)范围内</message>
        </field-validator>
    </field>
</validators>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值