Struts2用户输入的校验

1. 认知

校验工作量比较大
客户端校验:js
服务器端校验:代码
实际开发:客户端+服务器端校验

2.Struts2中的校验

前提:动作类继承ActionSupport
转换失败:都会转向一个name=input的逻辑视图

2.1 编程式校验:代码中编写校验代码

缺点:硬编码是最大的缺点
优点:对于验证可以做到更加精细化

2.1.1 针对动作类中的所有动作方法进行校验:

覆盖validate方法即可,会在动作方法执行前先执行(拦截器干的)
代码校验

2.1.2 针对某个动作方法进行校验

方式一:覆盖validate方法,对于不需要校验的使用@SkipValidation
方式二:覆盖validate方法时,遵守一定的命名规则
比如验证login动作方法:public void validateLogin(){}

public void validateRegist(){
    if(StringUtils.isBlank(user.getUsername())){
    //没有输入用户名
    addFieldError("username","请输入用户名"); 
    }
}

2.2 声明式校验:可插入式的校验方式(推荐使用)

2.2.1 针对所有动作方法进行校验

在动作类所在的包中,建立一个名称为”动作类名-validation.xml”的配置文件

从xwork-core-.jar中找到xwork-validator-1.0.3.dtd

方式一:针对字段,先写字段,后指定的验证器

<?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="username">
        <!-- 指定验证器:内置验证器requiredstring。判断是否为null或空字符串,默认去掉首位空格 -->
        <field-validator type="requiredstring">
            <!-- 错误消息提示 -->
            <message>您的用户名呢</message>
        </field-validator>
</validators>

方式二:先指定验证器,再告知要验证的字段

    <validator type="requiredstring">
        <!-- 给验证器注入参数:setFieldName(),告知要验证的是哪个字段 -->
        <param name="fieldName">password</param>
        <param name="trim">false</param>
        <message>您的密码呢</message>
    </validator>

2.2.2 针对某个动作进行校验

在动作类所在的包中,建立一个名称为”动作类名-动作名-validation.xml”的配置文件

2.2.3 struts2中提供的内置验证器

在xwork-core-2.3.15.3.jar\com\opensymphony\xwork2\validator\validators\default.xml文件中
内置验证器

系统提供的校验器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值