基本校验

基本校验

跳过校验的三种方式:
1. 使用注解@SkipValidation
2. 更改校验方法名validateReg
3. 使用xml进行配置

<interceptor-ref name="defaultStack">
<param name="validation.excludeMethods">input,back,cancel,browse,toregview</param>
</interceptor-ref>

方式一

action:

package com.kexin.action;

import org.apache.struts2.interceptor.validation.SkipValidation;

import com.kexin.bean.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class RegisterAction extends ActionSupport implements ModelDriven<User>{

    private static final long serialVersionUID = 1L;
    private User user = new User();
    @Override
    public User getModel() {
        return this.user;
    }
    public String reg(){
        System.out.println(this.user.getName());
        return SUCCESS;
    }
    //添加注解以跳过校验
    @SkipValidation
    public String toregview(){
        return "toregview";
    }
    /**
     * 校验方法
     * 除了添加注解跳过校验之外还可以在校验方法上实现,比如validateReg或validateDoReg都可以实现只在reg方法之前进行校验
     */
    public void validate(){
        if(this.user.getName()==null||this.user.getName().equals("")){
            addFieldError("name", "用户名不能为空");
        }
    }
}
<!-- 基本校验 -->
        <action name="registerAction_*" class="com.kexin.action.RegisterAction" method="{1}">
            <result name="success">/index.jsp</result>
            <result name="error">/first.jsp</result>
            <result name="toregview">/first.jsp</result>
            <result name="input">/first.jsp</result>
        </action>
<h3>测试基本校验(注解跳过校验)</h3>
    <div>
        <s:form action="registerAction_reg.do" method="post">
            <s:textfield name="name" label="UserName"/>
            <s:textfield name="id" label="UserId"/>
            <s:submit/>
        </s:form>
    </div>

方式二

基于XML的验证:

在进行验证的第二个方法是通过将一个xml文件的动作类。Struts2的基于XML验证的验证提供了更多的选择,如电子邮件验证,整数范围验证,表单验证字段,表达式验证,正则表达式验证,需要验证,验证所需的字符串,字符串长度的验证等。

XML文件需要被命名为’[action-class]’-validation.xml或者’[action-class]’-‘[action in struts.xml]’-validation.xml,保存在CLASSPATH 挨着类文件

<?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="customer.username">
        <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">16</param>
            <param name="trim">true</param>
            <message>用户名必须为${minLength}至${maxLength}个字符!,当前为${customer.customername}
            </message>
        </field-validator>
    </field>
    <!--密码 -->
    <field name="customer.password">
        <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">6</param>
            <param name="maxLength">20</param>
            <message>密码必须为${minLength}至${maxLength}个字符,当前为${customer.password}
            </message>
        </field-validator>
    </field>

    <!-- 确认密码 -->
    <field name="customer.password1">
        <field-validator type="required">
            <message>密码不能为空!</message>
        </field-validator>
        <field-validator type="fieldexpression">
            <param name="expression">customer.password==customer.password1</param>
            <message>两次密码不一致!</message>
        </field-validator>
    </field>

    <field name="customer.email">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>邮箱不能为空</message>
        </field-validator>
        <field-validator type="email">
            <param name="trim">true</param>
            <message>邮箱格式不正确!</message>
        </field-validator>
    </field>
</validators>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄鸭and小黑鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值