struts2 validation.xml 验证规则代码解析

为了让大家更好地理解和使用Struts2的数据验证功能,我们先来详细讲解一下“struts2 validation.xml 验证规则代码解析”的完整攻略。

一、Struts2数据验证简介

Struts2是一款基于MVC架构模式的web应用程序开发框架,可以快速地搭建一个web应用程序。在web应用程序的业务逻辑中,有时需要对用户提交的请求参数进行验证,比如用户名不能太长或太短、邮箱地址必须符合规范格式等等,这时候就需要使用Struts2的数据验证功能。

在Struts2中,数据验证是通过在Action类中添加注解或在validation.xml文件中配置验证规则来实现的。其中,validation.xml是一个非常重要的文件,里面包含了所有针对Action类中字段的验证规则配置。

二、Struts2 Validation.xml验证规则代码解析

在Struts2中,可以使用validation.xml来定义Action中某些字段的验证规则,下面是一个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="username">
      <field-validator type="requiredstring">
         <message>Your username is required.</message>
      </field-validator>
      <field-validator type="stringlength">
         <param name="minLength">2</param>
         <param name="maxLength">10</param>
         <message>The username length must be between 2 and 10 characters.</message>
      </field-validator>
   </field>
</validators>

上面的代码定义了一个用于Action中username字段的验证规则。其中field标签指定了被验证的字段名,username是指Action中的成员变量名。field-validator标签用于指定验证规则类型,这里使用了两个验证规则:requiredstring表示该字段不能为null或空字符串;stringlength表示该字段长度范围必须在2到10个字符之间。对于每一个验证规则,我们都可以通过message标签来定义验证失败时的提示信息。

现在,我们再来看一个validation.xml文件中的第二个例子:

<validators>
  <field name="email">
    <field-validator type="required">
      <message>Email is required.</message>
    </field-validator>
    <field-validator type="email">
      <message>Invalid email address.</message>
    </field-validator>
  </field>
</validators>

上面的代码定义了一个用于Action中email字段的验证规则。其中field-validator标签使用了两个验证规则:required表示该字段不能为空;email表示该字段必须是一个合法的邮箱地址格式。对于这两个规则,我们同样使用了message标签来定义验证失败时的提示信息。

三、示例

接下来,我们来看两个简单的示例,更好地理解struts2 validation.xml验证规则的使用。

  1. 示例一

我们需要验证一个登录Action中用户输入的用户名和密码。通过分析XML代码,我们可以得到以下表单验证规则:

<validators>
  <field name="username">
    <field-validator type="requiredstring">
      <message>用户名不能为空</message>
    </field-validator>
  </field>
  <field name="password">
    <field-validator type="requiredstring">
      <message>密码不能为空</message>
    </field-validator>
  </field>
</validators>

上面的代码中,我们对username和password分别这两个字段是否为空。如果有一个字段为空,则返回错误提示信息。

  1. 示例二

现在,我们需要验证一个注册Action中用户输入的邮箱地址格式是否正确。XML代码示例如下:

<validators>
  <field name="email">
    <field-validator type="required">
      <message>邮箱不能为空</message>
    </field-validator>
    <field-validator type="email">
      <message>邮箱格式不正确</message>
      <param name="regexExpression">^[\\w\\-]+(\\.[\\w\\-]+)*@([A-Za-z0-9]+\\.)+[A-Za-z]{2,4}$</param>
    </field-validator>
  </field>
</validators>

上面的代码中,我们首先检查邮件地址是否为空。如果为空,则返回错误提示信息。如果不为空,则使用email规则验证标记检查邮件地址,再次确认退出的地址是否符合正则表达式。如果不符合,则返回另一个错误提示信息。

四、总结

通过上述的示例,我们可以发现,Struts2数据验证功能的使用非常简单,只需要在Action中添加相应的验证规则即可。开发人员可以通过validation.xml文件自定义验证规则,对于基本的数据验证规则,Struts2内置了许多标签。在实际开发中,我们可以选择使用这些内置标签,也可以通过扩展Struts2提供的标签,自定义我们需要的标签,方便开发人员进行验证操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2 validation.xml 验证规则代码解析 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java读取文件内容,解析Json格式数据方式

    Java 读取文件内容并解析 Json 格式数据的方式可以通过 Gson 这个 Google 提供的开源库来实现。 以下是实现步骤: 步骤1:导入Gson库 在 pom.xml 中添加以下依赖: <dependencies> <dependency> <groupId>com.google.code.gson</gr…

    Java 2023年5月20日
    00
  • Java中Equals使用方法汇总

    Java中Equals使用方法汇总 Equals是Java中用于比较对象的方法,常用于判断两个对象是否相等。在Java中,我们可以通过两种方式来使用Equals:覆写Equals方法和使用Objects类中的equals方法。 覆写Equals方法 覆写Equals方法是指在一个类中自定义其equals方法,这样可以根据实际需求来自定义比较方式。 Java中…

    Java 2023年5月20日
    00
  • Java Apache POI报错“MissingCellDataException”的原因与解决办法

    “MissingCellDataException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 单元格错误:如果单元格中缺少数据,则可能会出现此异常。例如,可能会尝试读取不存在的单元格或尝试读取空单元格。 以下是两个实例: 例1 如果单元格中缺少数据,则可以尝试使用正确的单元格以解决此问题。例如,在Java中,可以使用以下代码…

    Java 2023年5月5日
    00
  • 什么是Java类装载机制?

    Java类装载机制指的是JVM如何加载和查找类的过程。在Java程序运行过程中,JVM需要定位并加载需要使用的类文件,Java类装载机制便是完成这个过程的。 Java 类装载有五个过程:加载、验证、准备、解析和初始化。以下是Java类装载的详细使用攻略。 1. 加载 加载是指将类的字节码数据加载到内存中,并为之创建一个 java.lang.Class 对象。…

    Java 2023年5月11日
    00
  • Java实现茶叶售卖商城系统(java+SSM+JSP+EasyUi+mysql)

    首先我们需要明确这个系统的功能和技术栈:Java实现茶叶售卖商城系统,技术栈包括Java、SSM框架、 JSP、EasyUI以及MySQL数据库。 下面将从需求分析、技术环境搭建、功能实现和项目测试等方面来进行讲解这个系统的攻略: 一、需求分析 在开始搭建系统之前,我们需要对系统的需求进行彻底的分析和定义,这样才能更好地实现系统的功能。 基于需求分析,我们可…

    Java 2023年5月24日
    00
  • 详解Java 缺失的特性扩展方法

    详解Java 缺失的特性扩展方法 Java 是一门非常成熟的编程语言,但它也存在一些不足之处。其中一个重要的问题就是缺乏特性扩展方法,这个问题一直以来都困扰着 Java 开发者。特性扩展方法是指在不改变类定义的情况下,在其上增加新的方法。这种机制在其他语言中已经被广泛应用了,例如 C#、Swift、Kotlin 等,它们都有内置的特性扩展方法。 在本文中,我…

    Java 2023年5月26日
    00
  • java.util.NoSuchElementException原因及两种解决方法

    当使用Scanner类从标准输入或文件读取数据时,可能会遇到java.util.NoSuchElementException异常。这个异常被抛出,当Scanner使用next()、nextInt()或nextLine()方法时,输入流中没有更多的输入时抛出。这个异常可能由以下原因引起: Scanner对象没有被正确地初始化或已关闭。如果Scanner对象已经…

    Java 2023年5月20日
    00
  • Android之解析JSON数据示例(android原生态,FastJson,Gson)

    下面是“Android之解析JSON数据示例”的完整攻略: 一、JSON数据格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端间的数据传输。JSON数据格式本质上是一组键值对(即“属性”和“值”),使用大括号 {} 括起来表示一个对象,每个键值对用逗号 , 隔开,属性名和属性值之间使用冒号 : …

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部