Struts 2 的输入校验

来源:互联网 发布:手机可以做淘宝网店吗 编辑:程序博客网 时间:2024/04/30 19:31

输入校验:要求用户名必须是字母和数字的组合且长度在(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>
0 0
原创粉丝点击