struts2中的各种各样的内建校验器的小例子

2024-05-16 15:18

本文主要是介绍struts2中的各种各样的内建校验器的小例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我在这里举了required(必填非空)、requiredstring(必填字符串)、int(整型)、date(日期)、email(邮件)、url(网址)、vistor(用于检测对象中的属性的不同)和conversion(用于检测类型转换是否转换成功),expression和fieldexoression这两个我不懂为什么总是不成功,就先不弄了

首先我们需要一个jsp文件,用来输入数据;之后我们要一个validation.xml文件来配置校验器,还需要两个类,一个是action类,里面有jsp文件中表单所提交的所有属性,另一个类是用来测试visitor对象是否能够判定类的内容。

这里是jsp文件的内容

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><s:form action="testvalidatior"><s:textfield name="testRegex" label="校验regex"/><s:textfield name="testStringlength" label="校验stringlength"/><s:textfield name="testConversion" label="校验Conversion"/><s:textfield name="testUser.name" label="校验user.name"/><s:textfield name="testUser.pass" label="校验user.pass"/><s:textfield name="testUrl" label="校验url"/><s:textfield name="testEmail" label="校验email"/><s:textfield name="testRequired" label="校验required"/><s:textfield name="testRequiredstring" label="校验requiredstring"/><s:textfield name="testInt" label="校验int"/><s:textfield name="testDate" label="校验date"/><s:submit/></s:form></body>
</html>

下面的是action类的内容


package action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;import entity.User;public class TestValidator extends ActionSupport{private Date testRequired;private String testRequiredstring;private int testInt;private Date testDate;private String testEmail;private String testUrl;private User testUser;private int testConversion;private String testStringlength;private String testRegex;public String getTestRegex() {return testRegex;}public void setTestRegex(String testRegex) {this.testRegex = testRegex;}public String getTestStringlength() {return testStringlength;}public void setTestStringlength(String testStringlength) {this.testStringlength = testStringlength;}public int getTestConversion() {return testConversion;}public void setTestConversion(int testConversion) {this.testConversion = testConversion;}public User getTestUser() {return testUser;}public void setTestUser(User testUser) {this.testUser = testUser;}public String getTestUrl() {return testUrl;}public void setTestUrl(String testUrl) {this.testUrl = testUrl;}public String getTestEmail() {return testEmail;}public void setTestEmail(String testEmail) {this.testEmail = testEmail;}public Date getTestDate() {return testDate;}public void setTestDate(Date testDate) {this.testDate = testDate;}public int getTestInt() {return testInt;}public void setTestInt(int testInt) {this.testInt = testInt;}public String getTestRequiredstring() {return testRequiredstring;}public void setTestRequiredstring(String testRequiredstring) {this.testRequiredstring = testRequiredstring;}public Date getTestRequired() {return testRequired;}public void setTestRequired(Date testRequired) {this.testRequired = testRequired;}}

也就是jsp表单中的所有参数,接下俩就是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="testRegex"><field-validator type="regex"><param name="regex"><![CDATA[(\w{4,20})]]></param><message>来自正则表达是的错误信息:输入4~20长度的字符串</message></field-validator></field><field name="testStringlength"><!-- stringlength顾名思义可以判断字符串的长度 --><field-validator type="stringlength"><param name="minLength">2</param><param name="maxLength">10</param><message>请输入长度为2~10的字符串</message></field-validator></field><field name="testRequired"><!-- requeired可以判断字段是否有值,比如说date是否有值,不能判断String,因为上传上来的是"" --><field-validator type="required"><message>请输入日期</message></field-validator></field><field name="testRequiredstring"><!-- requiredstring可以判断字符串,比较常用的就是trim--><field-validator type="requiredstring"><param name="trim">true</param><message>请输入的内容</message></field-validator></field><field name="testInt"><!-- int可以对int类型的最大最小值进行判断 --><field-validator type="int"><param name="max">10</param><param name="min">1</param><message>请输入大于等于10并且小于等于1的一个整数</message></field-validator> </field><field name="testDate"><!-- date可以对日期进行最大最小的判断 --><field-validator type="date"><param name="min">1990-01-01</param><param name="max">1999-12-31</param><message>请输入一个九零后的生日</message></field-validator></field><field name="testConversion"><!-- conversion可以判断类型转换是否正确 --><!-- testConversion在类中是一个int类型的,以方便我们测试是否转换成功 --><field-validator type="conversion"><param name="repopulateField">true</param><message>请输入一个整数</message></field-validator></field><field name="testEmail"><field-validator type="email"><message>清输入一个正确的email地址</message></field-validator></field><field name="testUrl"><field-validator type="url"><message>请输入一个正确的url</message></field-validator></field><field name="testUser"><field-validator type="visitor"><!-- 指定校验规则文件的context --><param name="context">userContext</param><!-- 指定校验失败后提示信息是否添加下面前缀 --><param name="appendPrefix"></param><!-- 指定校验失败的提示前缀 --><message>用户的:</message></field-validator></field>
</validators>


这篇关于struts2中的各种各样的内建校验器的小例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/995278

相关文章

Python FastAPI实现JWT校验的完整指南

《PythonFastAPI实现JWT校验的完整指南》在现代Web开发中,构建安全的API接口是开发者必须面对的核心挑战之一,本文将深入探讨如何基于FastAPI实现JWT(JSONWebToken... 目录一、JWT认证的核心原理二、项目初始化与环境配置三、安全密码处理机制四、JWT令牌的生成与验证五、

Spring Validation中9个数据校验工具使用指南

《SpringValidation中9个数据校验工具使用指南》SpringValidation作为Spring生态系统的重要组成部分,提供了一套强大而灵活的数据校验机制,本文给大家介绍了Spring... 目录1. Bean Validation基础注解常用注解示例在控制器中应用2. 自定义约束验证器定义自

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

spring 参数校验Validation示例详解

《spring参数校验Validation示例详解》Spring提供了Validation工具类来实现对客户端传来的请求参数的有效校验,本文给大家介绍spring参数校验Validation示例详... 目录前言一、Validation常见的校验注解二、Validation的简单应用三、分组校验四、自定义校