您的位置:首页 > 编程语言 > Java开发

Struts 2 的输入校验(2)

2016-09-10 10:10 387 查看
本文内容来自《搞定J2EE 核心技术与企业应用:Ajax,JSP,Struts 2,Spring,Hibernate》【常建功 王向华 编著】,版权归期所有,仅作记录以备后查。这篇文章通过Struts 2框架的方式实现校验,本篇通过复写validate方法实现用户注册功能。

开发环境:

IntelliJ IDEA 14.1.3

java version “1.7.0_65”

Apache Tomcat 7.0

Struts 2.3

Win7 64位

效果如下:



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



输入不符合要求,点击提交:



两次密码输入不一致,点击提交:



输入正确,提交:



代码组织结构:



源码如下:ValidateInValidate.java

package com.jl.action;

import com.opensymphony.xwork2.ActionSupport;

import java.util.regex.Pattern;

/**
* Created by root on 2016/9/10.
*/
public class ValidateInValidate 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;
}

@Override
public void validate() {
if (username.equals("")) {
addFieldError("username","必输输入用户名");
}else if (!Pattern.matches("\\w{4,15}", username)) {
addFieldError("username", "用户名必须是字母和数字的组合且长度在(4-15)范围内");
}

if (pass1.equals("")) {
addFieldError("pass1","必输输入密码");
}else if (!Pattern.matches("\\w{6,15}", pass1)) {
addFieldError("pass1", "密码必须是字母和数字的组合且长度在(6-15)范围内");
}

if (pass2.equals("")) {
addFieldError("pass2","必输重复输入密码");
}else if (!pass2.equals(pass1)) {
addFieldError("pass2", "重复输入密码必须与第一次输入密码一致");
}

if (age <= 0 || age > 99) {
addFieldError("age","年龄必须为整数且在(1-99)范围内");
}

}
}


struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<!--<constant name="struts.enable.DynamicMethodInvocation" value="true"/>       -->
<!--<constant name="struts.devMode" value="true"/>-->
<package name="default" extends="struts-default">
<action name="validate1" class="com.jl.action.ValidateInValidate">
<result name="input">index.jsp</result>
<result>welcome.jsp</result>
</action>
</package>
</struts>


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>


welcome.jsp

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


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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息