struts2的校验器

1.创建两个包一个是action的一个是model的

在model中写如下两个文件

User.java

内容如下

package com.qbd.model;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String email;//类型正确 1
private String password;//不为空 1
private String repassword;
private double height;//0.8-2
private String sex;
private String birthday;//类型正确 1
private String name;//不为空 在6-20 数字和字母 1
private String bbs;//类型正确 1
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBbs() {
return bbs;
}
public void setBbs(String bbs) {
this.bbs = bbs;
}
}

User-Reg-validation.xml

内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!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="email">
<field-validator type="email" short-circuit="true">
<message>邮箱格式不正确</message>
</field-validator>
</field>
<field name="name">
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression"><![CDATA[([0-9a-zA-Z]{6,20})]]></param>
<message>必须6-20的字母或数字</message>
</field-validator>
</field>
<field name="bbs" >
<field-validator type="url" short-circuit="true">
<message>地址格式不正确</message>
</field-validator>
</field>
<field name="password" >
<field-validator type="stringlength" short-circuit="true">
<param name="minLength">6</param>
<message>密码长度不能少于6位</message>
</field-validator>
</field>
<field name="repassword" >
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression"><![CDATA[(repassword==password)]]></param>
<message>两次密码不一至</message>
</field-validator>
</field>
<field name="birthday" >
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression"><![CDATA[(\d{4}-\d{1,2}-\d{1,2})]]></param>
<message>日期错误</message>
</field-validator>
</field> 
<field name="height" >
<field-validator type="double" short-circuit="true">
<param name="minInclusive">0.8</param>
<param name="maxInclusive">2</param>
<message>身高不再范围</message>
</field-validator>
</field>          
</validators>


在action填写

RegisterAction.java

package com.qbd.action;
import com.opensymphony.xwork2.ActionSupport;
import com.qbd.model.User;
public class RegisterAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private User user;
public String execute() throws Exception {
        return SUCCESS;
    }
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}


RegisterAction-register-validation.xml

内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!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="user">
<field-validator type="visitor">
<param name="context">Reg</param>
<param name="addpendPrefix">true</param>
<message>用户注册:</message>
</field-validator>
</field>
</validators>

在struts2的配置文件中写

<?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.i18n.encoding" value="UTF-8" />
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor-stack name="tokenStack">
<interceptor-ref name="token" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="tokenStack" />
<action name="register" class="com.qbd.action.RegisterAction">
<result name="invalid.token">error.jsp</result><!-- 需要注意的是名字必须为invalid.token -->
<result name="success">success.jsp</result>
<!-- 校验失败后,struts2会把页面转到名为"input"的页面中 -->
<result name="input">register.jsp</result>
</action>
</package>
</struts>

测试的页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 加载struts2标签库 -->
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<s:head />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册</title>
</head>
<body>
<form action="register.action" method="post">
<table>
<tr>
<td>用户名(6-20字母或数字):</td>
<td><input type="text" name="user.name" /></td>
<!-- 使用<s:fielderror/>标签输入相应的字段错误信息 -->
<td><s:fielderror fieldName="user.name" /></td>
</tr>
<tr>
<td>密码(长度不小于6位):</td>
<td><input type="password" name="user.password" /></td>
<td><s:fielderror fieldName="user.password" /></td>
</tr>
<tr>
<td>重复密码:</td>
<td><input type="password" name="user.repassword" /></td>
<td><s:fielderror fieldName="user.repassword" /></td>
</tr>
<tr>
<td>性别:</td>
<td><input type="text" name="user.sex" /></td>
<!-- 使用<s:fielderror/>标签输入相应的字段错误信息 -->
<td><s:fielderror fieldName="user.sex" /></td>
</tr>
<tr>
<td>身高(0.8-2 单位米):</td>
<td><input type="text" name="user.height" /></td>
<!-- 使用<s:fielderror/>标签输入相应的字段错误信息 -->
<td><s:fielderror fieldName="user.height" /></td>
</tr>
<tr>
<td>出生日期(格式:1994-10-26):</td>
<td><input type="text" name="user.birthday" /></td>
<!-- 使用<s:fielderror/>标签输入相应的字段错误信息 -->
<td><s:fielderror fieldName="user.birthday" /></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="user.email" /></td>
<!-- 使用<s:fielderror/>标签输入相应的字段错误信息 -->
<td><s:fielderror fieldName="user.email" /></td>
</tr>
<tr>
<td>博客:</td>
<td><input type="text" name="user.bbs" /></td>
<td><s:fielderror fieldName="user.bbs" /></td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td>
<td></td>
<td></td>
</tr>
<s:token></s:token>
</table>
</form>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值