博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2使用验证文件实现校验
阅读量:6883 次
发布时间:2019-06-27

本文共 4682 字,大约阅读时间需要 15 分钟。

原创


struts2框架提供了一种基于验证文件的输入验证方式,将验证规则保存在特定的验证文件中。

验证文件的命名规则

一般情况下,验证文件的命名规则是:Action类名-validation.xml。如果一个Action有多个逻辑处理方法,

要为某个特定方法做验证,其命名规则是:Action类型-Action逻辑名-validation.xml(其中,Action逻辑名是指struts.xml中的对应该处理方法的action配置中的name值)。

struts2框架中提供了大量的内置校验器,在项目开发中,大部分校验功能都可以通过内置校验器来完成。struts2框架提供两种配置校验器的方式:字段校验器配置风格和非字段校验器配置风格。

下面通过字段校验器配置风格来举例。

一个客户输入验证如下:

客户输入界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>          注册页面                  
填写注册信息
用户名:*
用户名由字母开头,后跟字母、数字或下划线!
密码:*
设置登录密码,至少6位!
确认密码:*
请再输入一次你的密码!
性别:*
请选择你的性别!
邮箱地址:*
请填写您的常用邮箱,可以用此邮箱找回密码!
基本情况:*
我已经仔细阅读并同意接受用户使用协议
 

创建保存用户信息的JavaBean

public class User {    private String userName;    private String userPwd;    private String userSex;    private String userEmail;    private String userBasicInfo;    public User(){};    public String getUserName() {        return userName;    }    public void setUserName(String usreName) {        this.userName = usreName;    }    public String getUserPwd() {        return userPwd;    }    public void setUserPwd(String userPwd) {        this.userPwd = userPwd;    }    public String getUserSex() {        return userSex;    }    public void setUserSex(String userSex) {        this.userSex = userSex;    }    public String getUserEmail() {        return userEmail;    }    public void setUserEmail(String userEmail) {        this.userEmail = userEmail;    }    public String getUserBasicInfo() {        return userBasicInfo;    }    public void setUserBasicInfo(String userBasicInfo) {        this.userBasicInfo = userBasicInfo;    }    }

创建Acion验证输入:

package Action;import JavaBean.User;   import java.sql.*;import com.opensymphony.xwork2.ActionSupport;import java.util.regex.*;import DBase.connection;public class register extends ActionSupport{    private User user;    private String userPwd;    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    public String getUserPwd() {        return userPwd;    }    public void setUserPwd(String userPwd) {        this.userPwd = userPwd;    }        public boolean add(){        Connection con=connection.getConnection();    //获取数据库连接        String sql="insert into Users(username,userpwd,usersex,useremail,userbasicinfo) values(?,?,?,?,?)";        try {            PreparedStatement pre=con.prepareStatement(sql);            pre.setString(1,user.getUserName());            pre.setString(2, user.getUserPwd());            pre.setString(3, user.getUserSex());            pre.setString(4, user.getUserEmail());            pre.setString(5, user.getUserBasicInfo());            int n=pre.executeUpdate();            if(n==1){                return true;            }        } catch (SQLException e) {            System.out.println("error");            return false;        }        return false;    }    public String regist() throws Exception{        if(add()==true){            return "success";        }else{            return "input";        }    }}

struts.xml的配置

index,show,create,update,destroy,deleteConfirm,edit,editNew
/register283/Success.jsp
/register283/regist.jsp

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              校验成功        
校验通过,用户信息如下:

用户名:
密码:
确认密码:
性别:
邮箱地址:
基本情况:

成功页面

18:19:03

2018-11-16

转载于:https://www.cnblogs.com/chiweiming/p/9970833.html

你可能感兴趣的文章
C++与Java语法上的不同
查看>>
Ceph集群块设备使用-创建和使用OSD
查看>>
大数据||hadoop分布式集群安装
查看>>
华为设备默认console密码
查看>>
wxWidgets第四课 EVT_LEFT_UP关联鼠标弹起事件不生效
查看>>
【故障解决】ORA-06502错误解决
查看>>
昂纳科技2016年营收15.98亿港元 数据中心业务大增409%
查看>>
为何还处于概念阶段的智能家居被3.15点名批评
查看>>
大数据技术服务商个推获4亿人民币D轮融资
查看>>
Git的详细使用教程
查看>>
[LeetCode]40.Combination Sum II
查看>>
python里的拆包、引用、递归与匿名函数
查看>>
关于前端项目代码检测~
查看>>
初探 BaconJS
查看>>
使用CDN(Content Delivery Network)加速站点访问速度汇总指北
查看>>
区块链生态圈应用落地须了解区块链共识技术开发
查看>>
ES6学习文档(更新至第7节)
查看>>
再次理解伪类选择器:nth-child(){……}
查看>>
MongoDB 在windows服务器安装部署与远程访问配置
查看>>
iOS实现类似苹果手机原生的锁屏界面(数字密码)
查看>>