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

yizhihongxing

为了让大家更好地理解和使用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日

相关文章

  • SpringBoot2.0.3打印默认数据源为 HikariDataSource (null)问题

    下面是SpringBoot2.0.3打印默认数据源为HikariDataSource(null)问题的完整攻略。 问题描述 在使用SpringBoot2.0.3版本时,如果使用了默认的数据源,会在启动程序时输出类似于“SpringBoot2.0.3打印默认数据源为 HikariDataSource (null)”的提示信息,其中null在不同的操作系统和环境…

    Java 2023年5月20日
    00
  • Spring MVC整合Kaptcha的具体使用

    下面是Spring MVC整合Kaptcha的具体使用的攻略: 准备工作 在Spring MVC项目中使用Kaptcha,需要先导入Kaptcha的依赖。可以在maven项目的pom.xml中添加以下代码: <dependency> <groupId>com.google.code.kaptcha</groupId> &l…

    Java 2023年6月16日
    00
  • Java通过JNI 调用动态链接库DLL操作

    关于Java通过JNI调用动态链接库DLL的攻略,我来给你详细讲解一下。 1. 环境准备 在开始使用JNI进行Java调用DLL之前,需要确保以下几点: 安装并配置好Java JDK (开发包)和运行时环境(JRE); 安装Visual Studio(Windows平台)或gcc等C/C++编译器(Linux/Unix/macOS平台); 按照平台(Wind…

    Java 2023年5月26日
    00
  • Java使用黑盒方式模拟实现内网穿透

    Java使用黑盒方式模拟实现内网穿透攻略 什么是内网穿透? 内网穿透是一种技术,可以将内部网络中的服务通过外部的网络进行访问,在开发或实际运维中,内网穿透被广泛应用。 黑盒方式模拟内网穿透 黑盒方式模拟内网穿透的实现,即通过模拟一个中间站点来实现服务的穿透,让外部网络能够访问内部网络中的服务。可以使用Java语言实现。 实现步骤 从外部网络连接模拟中间站点。…

    Java 2023年5月24日
    00
  • java中response对象用法实例分析

    Java中Response对象用法实例分析 在Java的Web开发中,Response对象是常用的一个对象。它用于向客户端发送响应信息,同时还可以设置Cookie、Header等信息。本文将介绍Java中Response对象的用法,包括常见的方法和示例说明。 Response对象常用方法 1. 设置响应头信息 使用Response对象的setHeader()…

    Java 2023年5月26日
    00
  • Java中的StringUtils引入及使用示例教程

    Java中的StringUtils引入及使用示例教程 简介 在Java编程中,字符串处理是非常常见的任务。而Apache Commons Lang库中的StringUtils类,提供了许多有用的方法来帮助我们进行字符串的处理。在本教程中,我们将简要介绍如何引入和使用StringUtils类中的方法。 引入 StringUtils在Apache Commons…

    Java 2023年5月27日
    00
  • Java中使用fileupload组件实现文件上传功能的实例代码

    介绍 在Java Web开发中,文件上传功能是一个非常常见和基础的功能。而使用fileupload组件实现文件上传,不仅方便易用,而且功能强大,能够满足大多数文件上传需求。 本文将介绍如何使用fileupload组件实现文件上传功能的实例代码并附有完整代码和两个示例供您参考。在实现文件上传的过程中,我们需要引入Apache Commons FileUploa…

    Java 2023年5月19日
    00
  • 使用SpringMVC返回json字符串的实例讲解

    我将为您讲解使用SpringMVC返回JSON字符串的实例攻略。 1. 实现步骤 SpringMVC实现返回JSON字符串的步骤大致如下: 在pom.xml文件添加依赖: <dependencies> <!– SpringMVC核心包 –> <dependency> <groupId>org.springf…

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