Struts2 校验器(Validate)

420 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

前言

  本教程是 Struts2 框架提供的校验实现,共有两种方式,个人推荐第二种方式,使得 action 和 validate 分离的更加清晰,供大家参考学习。

方式一

  通过validate方法来实现,只需在LoginAction.java中重写 validate 方法即可,缺点是没有将java代码与校验代码分离。

1、实现思路

  • 1.首先创建一个项目,名为 StrutsTest
  • 2.创建一个包存放 Struts,创建类,命名为 LoginAction.java
  • 3.在该包下,创建一个 xml 文件,名为 struts.xml
  • 4.把 jar 包导入 lib 目录下
  • 5.在 web.xml 中配置过滤器
  • 6.创建一个实体类 User,其中的属性值与 form 表单提交的数据保持一致
  • 7.编写validate方法
  • 8.关键代码如下:

2、具体实现

在LoginAction,编写一个方法,判断是否用户名为空,并addFieldError,提示信息。

3、LoginAction

public void validate(){
        if(user.getUserName()==null||user.getUserName().trim().equals(" ")){
            addFieldError(user.getUserName(), "用户名不能为空");
}

方式二(推荐)

  通过Action+validation.xml配置来实现,只需在LoginAction同级目录下面创建规范命名的xml文件即可,优点目录结构清晰。

1、实现思路

  • 1.首先创建一个项目,名为 StrutsTest
  • 2.创建一个包存放 Struts,创建类,命名为 LoginAction.java
  • 3.在该包下,创建一个 xml 文件,名为 struts.xml
  • 4.把 jar 包导入 lib 目录下
  • 5.在 web.xml 中配置过滤器
  • 6.创建一个实体类 User,其中的属性值与 form 表单提交的数据保持一致
  • 7.在LoginAction包下创建LoginAction-validation.xml编写校验规则
  • 8.关键代码如下:

2、具体实现

在LoginAction 同级包下创建 LooginAction-validation.xml 编写校验规则,如requiredstring校验器等。

3、LoginAction-validation

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC    
"-//Apache Struts//XWork Validator 1.0.2//EN" 
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators><!-- 
    校验方式二
    Action命名+validation.xml
    --><!-- 需要校验的字段的字段名 -->
    <field name="user.userName">
        <!--验证字符串不能为空,即必填-->
        <field-validator type="requiredstring">
            <!--去空格-->
            <param name="trim">true</param>
            <!--错误提示信息-->
            <message>用户名必须填!</message>
        </field-validator>
    </field>
    
    <!-- 邮箱校验 -->
    <field name="user.email">
        <field-validator type="email">
            <message>请输入有效邮箱地址</message>
        </field-validator>
    </field>
    
    <!-- 年龄校验等等 -->
    <!-- <field name="user.age">
        <field-validator type="int">
            <param name="min">0</param>
            <param name="max">100</param>
            <message>请输入有效年龄</message>
        </field-validator>
    </field> -->
    
</validators>

实现效果

主页面:

6542720a923a3a5c71b9b36832f8ab1e.png

当校验失败时:

6c8d7d4df5459dd0c3d048938b3c69be.png

校验成功之后:

44073a63726d8a3adfc09370b0700c9e.png

总结

  以上就是Struts2框架为我们提供的校验的,只需增加校验配置文件,就可以完成对数据的校验,方便了我们的开发,除此之外,Struts2还为我们提供了大量的其他表单校验和非表单校验。