一、实现注册验证

package com.pb.entity;

import java.util.Date;

/**
* 用户实体类
*
*/
public class User {
/**
* 住址
*/
private String address;
/**
* 年龄
*/
private Integer age; /**
* 邮箱
*/
private String email; /**
* 密码
*/
private String password; /**
* 电话或者手机
*/
private String phone; /**
* 用户名
*/
private String username; /**
* 出生日期
*
*/
private Date brithDate; public String getAddress() {
return address;
} public Integer getAge() {
return age;
} public String getEmail() {
return email;
} public String getPassword() {
return password;
} public String getPhone() {
return phone;
} /**
* 与之对应的getter和setter方法
*
*/
public String getUsername() {
return username;
} public void setAddress(String address) {
this.address = address;
} public void setAge(Integer age) {
this.age = age;
} public void setEmail(String email) {
this.email = email;
} public void setPassword(String password) {
this.password = password;
} public void setPhone(String phone) {
this.phone = phone;
} public void setUsername(String username) {
this.username = username;
} public Date getBrithDate() {
return brithDate;
} public void setBrithDate(Date brithDate) {
this.brithDate = brithDate;
} }

Action

package com.pb.web.action;

import com.opensymphony.xwork2.ActionSupport;
import com.pb.entity.User; public class UserAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 用户
*/
private User user;
private String repassword; /**
* 注册验证方法
*
*/
public String Register(){
System.out.println("完成注册"); return SUCCESS;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public String getRepassword() {
return repassword;
} public void setRepassword(String repassword) {
this.repassword = repassword;
} }

页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<sx:head parseContent="true"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="registor.action" method="post">
用户名:<input type="text" name="user.username" /><br/>
密码:<input type="password" name="user.password" /><br/>
确认密码:<input type="password" name="repassword" /><br/>
年龄:<input type="text" name="user.age" /><br/>
电话或者手机:<input type="text" name="user.phone" /><span>例如:电话:0755-88888888或者手机:13800138000</span><br/>
邮箱:<input type="text" name="user.email" /><br/>
住址:<textarea rows="5" cols="20" name="user.address" ></textarea><br/> 出生日期:<input type="text" name="user.brithDate"/><br/><span>例如:1970-01-01</span>
<%-- <sx:datetimepicker name="user.brithDate"/><br/> --%>
<input type="submit" value="注册" /><input type="reset" value="重置" />
</form>
<s:fielderror /> </body>
</html>

UserAction-registor-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.username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空!</message>
</field-validator> <field-validator type="stringlength">
<param name="trim">true</param>
<param name="minLength">4</param>
<param name="maxLength">16</param>
<message>用户名必须为${minLength} 至${maxLength} 之间,当前为${user.username}</message>
</field-validator>
</field>
<!-- 用户密码 -->
<field name="user.password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">20</param>
<message>密码必须为${minLength} 至${maxLength} 之间,当前为${user.password}</message>
</field-validator>
</field>
<!-- 确认密码 -->
<field name="repassword">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>确认密码不能为空!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression">repassword eq user.password</param>
<message>确认密码必须与密码输入一致!</message>
</field-validator>
</field>
<!--年龄 -->
<field name="user.age">
<field-validator type="required">
<param name="trim">true</param>
<message>年龄不能为空</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">200</param>
<message>年龄必须在${min} 至${max}之间,当前为${user.age}</message>
</field-validator>
</field>
<!-- 电话user.phone -->
<field name="user.phone">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>电话号码不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="regex">^((\d{3,4}-){0,1}(\d{7,8}))|(\d{11})$</param>
<message>电话号码或者手机号格式不正确!</message>
</field-validator>
</field>
<!--邮箱验证 -->
<field name="user.email">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>邮箱不能为空!</message>
</field-validator>
<field-validator type="email">
<param name="email"></param>
<message>邮箱格式不正确!</message>
</field-validator>
</field>
<!-- 住址-->
<field name="user.address">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>住址不能为空!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">5</param>
<param name="maxLength">200</param>
<message><![CDATA[地址长度为${minLength} 至${maxLength} 之间,当前为${user.address}]]></message>
</field-validator>
</field>
<!-- 出生日期 -->
<field name="user.brithDate">
<field-validator type="required">
<param name="trim">true</param>
<message>出生日期不能为空</message>
</field-validator>
<field-validator type="regex">
<param name="regex">^\d{2,4}-\d{1,2}-\d{2,4}$
</param> <message>日期格式不正确!</message>
</field-validator>
</field>
</validators>

Struts2(十七)验证框架二的更多相关文章

  1. struts2 的验证框架validation如何返回json数据 以方便ajax交互

    struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror  />才能取出,(EL应该也可以). 如果使 ...

  2. Struts2的验证框架简单吗?

    Struts2验证框架是基于Struts拦截器开发的,具有良好的扩展性:一般的验证都可以支持.现在我们以一个注册验证的例子进行总结: 新建一个model,User: public class User ...

  3. 【转】Struts2 表单验证与验证框架

    版权声明:好笔头不如烂记性 https://blog.csdn.net/zsbgood/article/details/81114038 表单数据验证是很常见的功能,通常前端页面会有一次 js验证,但 ...

  4. jQuery验证框架 .

          目录视图 摘要视图 订阅 “程序人生”中国软件开发者职业生涯调查     CSDN社区“三八节”特别活动      开发者职业生涯调查之未来 jQuery验证框架 分类: JQuery 2 ...

  5. Struts2数据验证机制

    1. 手动验证的实现 只需要在继承ActionSupport类的情况下,直接重写validate()方法即可.使用validate()方法可以对用户请求的多个Action方法进行验证,但其验证的逻辑是 ...

  6. Struts2(十二)使用验证框架验证数据较验

    一.数据验证 1.1.为什么要进行数据验证 对数据的合法性进行检查,只允许合法的数据进入应用程序 1.2.在哪里实现数据验证 客户端验证: 数据提交前在客户端验证 可使用JavaScript或者JQu ...

  7. (七)Struts2 验证框架

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 验证简介 Struts2 基于Struts2 拦截器,为 ...

  8. struts2(三)---struts2中的服务端数据验证框架validate

    struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...

  9. struts2学习笔记(三)—— 在用户注冊程序中使用验证框架

    实现目标:       1.使用验证框架对用户注冊信息进行验证       2.验证username.password.邮箱不能为空       3.验证username.password长度     ...

随机推荐

  1. [转] C#反射设置属性值和获取属性值

    /// /// 获取类中的属性值 /// /// /// /// public string GetModelValue(string FieldName, object obj) { try { T ...

  2. 关于VR技术和未来发展---转

    原文地址:http://mp.weixin.qq.com/s?__biz=MzA4MTIwNTczMQ==&mid=2651345594&idx=3&sn=2741ab7321 ...

  3. yousa_team团队项目——兼职平台网站 工作进度

    4月31 初步设计网站界面,功能以及数据库关系图 网站包括登陆注册界面,商家和学生都有个人主页,查看兼职信息界面和反馈界面,管理员有查看反馈界面,查看兼职市场,管理后台界面 登录注册界面实现用户的登陆 ...

  4. SQL查询语句去除重复行

    1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录 ...

  5. Laravel 5 服务的注册和使用

    首先我们需要创建一个服务的类,比如叫CqhServiceProvider,最简单的方式就是用artisan来帮我们创建 php artisan make:provider CqhServiceProv ...

  6. Cocos2d-x SpriteFrameCache的使用

    根据官方文档与其他c++属性实现的类似书中示例: 图中的小人是会动的. 首先使用texturepacker制作出一张拼图,导出plist等文件: plist类似: 3.x的cocos似乎不再鼓励使用什 ...

  7. Hekaton的神话与误解

    最近这段时间,我花了很多时间来更好的理解Hekaton——SQL Sever 2014里的全新内存表技术.我看了很多文章,了解了Haktaon的各种内部数据存储结构(主要是哈希索引和Bw-tree). ...

  8. IOS开发UI基础之UIScrollView

    什么是UIScrollView ● 移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ● 当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容 ...

  9. ASP.NET MVC的路由

    好久没写博文了,感觉最近好像少了点动力.唉!这回就看看这个MVC的路由. 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是 ...

  10. Unity3D读取模型文件自动生成AnimatorController简单实例

    前几天接到一个任务,做一个导入.控制模型动画的工具类,没有太具体的要求,于是就自行思考实际需求,最终根据宣雨松老师的一篇博客,自己规范了一下写了一个工具类.相关工具代码及测试用例已上传至Github. ...