自定义接口验证规则

【LWC】使用HTMLSelectElement标准接口 checkValidity reportValidity setCustomValidity 检查输入值、自定义验证规则及错误消息 使用HTMLSelectElement标准接口 checkValidity reportValidity setCustomValidity 检查输入值、自定义验证规则及错误消息 应用场景 在LWC组件中经常会有自定义表单的出现,如果我们对一个对象记录进行新建、编辑操作时需要提前检查输入的合法性,我们可以使用LWC提供的公共方法来检查输入值,甚至可以自定义一个检查规则。本文会用一个很简单的例子告诉你正确的使用方式。 检查方法 我们首先写一个最简单的表单LWC组件: <template> 阅读详情

1、创建自定义的注解类验证规则

package com.gosuncn.orderManage.web.util;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * 长度注解,用于验证String的长度,包括最小长度,最大长度和是否为空串
 *
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Length {
    String name() default "";
    /**
     * 字段最小长度
     */
    int min() default 1;
    /**
     * 字段最大长度
     */
    int max() default 100;
    /**
     * 能否为空
     */
    boolean canBlank() default false;
}

2、在实体类中对相应的字段加以注解

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import org.springframework.format.annotation.DateTimeFormat;

import com.alibaba.fastjson.annotation.JSONField;
import com.gosuncn.orderManage.web.util.Length;

@Entity
@Table(name = "order")
public class AlarmOrder implements Serializable {

	private static final long serialVersionUID = 4642078379320703633L;
	/**
	 * 工单ID
	 */
	@Id
	@Column(name="ID")
	@Length(max = 36)
	private String id;		
	/**开始时间
	 */
	@Column(name="TIME")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	@Length
	private Date time;			
	/**
	 * 备注
	 */
	@Column(name="REMARK")	
	private String remark;			
}

3、编写接口验证实用类

/**
     * 参数验证,配合响应的注解使用<br>
     *
     * @param object 验证对象
     * @return 根据规则验证成功则返回true,否则false
     * @throws IllegalAccessException
     * @see Length
     */
    public static boolean dataValid(Object object) {
        Field[] fields = object.getClass().getDeclaredFields();
        for (Field field : fields) {   
            // 字符串验证
            Length length = field.getAnnotation(Length.class);
            if (length != null) {
                boolean isAccessible = field.isAccessible();
                field.setAccessible(true);
                String value="";
                try {
                	Object object2 = field.get(object);  
                	if(object2!=null){
                		value =object2.toString();              		
                	}
                } catch (IllegalAccessException e) {
                     LogUtils.error("获取字段值失败!", e);
                     throw new RuntimeException("获取字段值失败!");
                } finally {
                     field.setAccessible(isAccessible);
                }
                if (!length.canBlank() && isBlank(value)) {
                     LogUtils.error("参数‘{}’不能为空", field.getName());
                     return false;
                } else{
                     if (value.length() < length.min()) {
                         LogUtils.error("参数‘{}’长度不能小于{}", field.getName(), length.min());
                         return false;
                     }
	                if (value.length() > length.max()) {
	                     LogUtils.error("参数‘{}’长度不能大于{}", field.getName(), length.max());
	                     return false;
	                 }
                }
             }
            
        }
        return true;
    }
    private static boolean isBlank(String value) {
        return value == null || value.trim().length() == 0;
    }

 

认证的统一管理接口文档 认证中心主要实现对认证的统一管理,包括为各个应用系统提供统一的认证接口,以及提供统一的、多模式认证方式的用户管理平台。认证方式包括传统的账户认证、PKI认证和生物识别认证,其中生物识别认证包括多种生物识别方式(如声纹识别、人脸识别、语音识别等)。 立即下载

相关推荐

无源低通滤波器

无源RC滤波器“滤除”不需要的信号,因为它们分离并允许仅通过其频率的正弦输入信号,最简单的是无源低通滤波器网络。在低频应用(高达100kHz)中,无源滤波器通常使用简单的RC(电阻-电容)网络构建,而高频滤波器(高于100kHz)通常由RLC(电阻-电感-电容)元件制成。无源滤波器由电阻器、电容器和电感器等无源元件组成,没有放大元件(晶体管、运算放大器等),因此没有信号增益,因此它们的输出电平始终小于输入。滤波器是根据它们允许通过它们的信号的频率范围来命名的,同时阻挡或“衰减”其余部分。

weixin_44448586的博客 1万+

接口返回值校验

1、背景 2、校验方式 (1)值校验 (2)类型校验 (3)数组类型校验 (4)正则校验 (5)

chenchen_nini的博客 4246

S7-1200PLC期末复习题(第七章)

A.0 B.1 C.4 D.-4 A、CV = 0 B、CV = 1 C、CV < 4 D、CV >= 4A、0,0 B、3,0 C、1,1 D、3,1 A、0 B、1 C、先是1,再变为0 D、先是0,再变为1置位输出:常开触点M0.0闭合,Q0.0变为1状态并保存该状态,即使M0.0断开,Q0.0也保持1状态。 复位输出:常开触点M0.1闭合时,Q0.0变为0状态并保持该状态,即使M0.1断开,Q0.0也保持为0状态。 A、1 B、0 C、5 D、10RESET_BF指令需要两个参数,第一个是复位的位数

qq_52251819的博客 4421

接口测试规范

接口测试规范:1、文件以系统名称命名,同一个系统的接口案例归纳在一起;2、环境信息(域名、端口)、用户数据(账号、密码)等常量提取成公共变量;3、域名、端口统一放在HTTP请求默认值元件;4、同一个接口的案例归纳到一个控制器之下;5、案例设计需要覆盖:a、业务正常和异常场景;b、输入参数的校验:必填、传空、null、特殊字符、错误值、大小写、类型、数值范围、字符串长短、组合、加解密等;c、输出结果的校验:状态码、字段值、消息体等;d、安全测试(可选):未授权访问(无登录态),水平越权(A1访问A2),垂直越

ramsey17的博客 743

通过ssh进行宇树g1机器人进行连接

原因:就是g1机器人输出接口损坏,无法连接外部显示器。前期准备:本文电脑是联想Y7000p(windows)2.进入页面后:3.出现是一个压缩包,解压后:4.安装时:要注意,需要在文件夹中找到这个文件目录,然后在此鼠标右键开启终端进行安装:接着按照提示next下去即可,可以自定义安装路径。

m0_72207463的博客 1288

自动驾驶预测决策规划八股

预测规划八股个人总结。

dawushixiange的博客 479

保障接口安全的11个方法

保障接口安全

usa_washington的博客 2359

G2O (General Graph Optimization)入门及简单使用

g2o全称是General Graph Optimization,也就是图优化,我们在做SLAM后端或者更加常见的任何优化问题(曲线拟合)都可以使用G2O进行处理。

晓晨的博客 1万+

API接口测试规范总结

一、参数校验 数据类型校验: 确保传入参数的数据类型与接口文档中定义的类型一致。 校验参数类型,如字符串、整数、浮点数等,是否满足要求。 数据长度校验:

人生不怕起点低,就怕没追求 950

Materials studio中的简单聚合物的建立及盒子的弛豫

涉及模块 Amorphous Cell-construction Forcite-caculation Build Polymers-Homopolymer

快乐学术猿 3万+

从AND到XOR:5种门控电路在PrimeTime中的检查策略差异

本文深入探讨了AND、NAND、OR、NOR和XOR五种门控电路在PrimeTime静态时序分析中的检查策略差异。重点解析了XOR门控因其非单调性而无法被工具自动推断,需要工程师手动配置的特殊性,并提供了针对各类门控的配置模板与调试技巧,以确保时钟网络的完整性与芯片设计的可靠性。

rgv2345678的博客 270

接口校验规则示例

正常情况下,接口一般都有加密规则,最近工作中用到的是CI框架,下面示例一些简单的加密规则: public function verify() { $arr_user = array( 'cmcc' => 'acae0af3b90c4320c325af551b0830a6', //demo ); $max_t...

散尽浮华 1667

国资e学快速学习实战教程

本文主要介绍了国资e学快速学习实战教程,希望能对同学们有所帮助。 文章目录 1. 前言 2. 实战教程

weixin_43178406的博客 11万+

iview 表单自定义验证规则判断两个输入框逻辑且调用后端接口

相信大家一定遇到过这种情况,iview有表单验证,但有时后台也有接口作为表单验证,话不多说上代码。 一、ruleValidate里的写法 二、写validAccess方法 这段代码写在data()里面然后要把this赋值给self 不然找不到v-model里的内容。 ...

不积跬步何以至千里 1392

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

nodejs Express框架API接口路由添加自定义验证规则

1:项目结构: 2:路由添加自定义验证规则 路由定义: const express = require('express') const checkAuth = require('../middlewares/authorization') const router = express.Router() const ApiController = require('../contro...

柳旦旦的博客【PHP面试网博主】 2654

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

7:自定义验证规则及构建接口参数验证层

1:当Valindate里没有自己想要的验证器时候,就自己定义个验证器!使用方法一样 2:上面较验的逻辑没有啥变化,一样比较复杂,可以进行如下简化: 规则独立处理,在做一个有很好复用的gocheck方法 原来逻辑混乱的验证,在这里就一条语句就可以了! ...

chuxiaotan6629的博客 175

XAF实现运行时填加验证规则并保存到数据库中

有几种方法可以用来声明一个验证规则。最常用的方法是使用对应的Attribute来定义。详见这里。验证模块还允许您通过在业务类实现IRuleSource接口定义自定义的验证规则的来源。 IRuleSource接口公开两个成员。名称属性应返回自定义的验证规则源的唯一名称。CreateRules方法应实例化自定义的验证规则。 一个场景中,您可能需要实现自定义验证规则来源执行验证...

weixin_30414245的博客 276

学习016-01 Validation Rules(验证规则)

XAF框架提供了多种内置验证规则类型,包括必填字段验证、范围验证、比较验证等。这些验证规则都实现了IRule接口,用户可以通过实现该接口或继承RuleBase抽象类来创建自定义验证规则。具体实现方法可参考"实现自定义规则"主题文档。

DevExpress Xaf 学习专栏 329

data-transfer-object验证系统:如何构建自定义验证规则的完整指南

在现代PHP开发中,数据验证是确保应用程序稳定性和安全性的关键环节。data-transfer-object(DTO)作为数据传输的容器,其验证系统能够帮助开发者在数据进入业务逻辑前捕获错误。本文将详细介绍如何利用data-transfer-object验证系统构建自定义验证规则,让你的数据验证逻辑更加灵活和强大。 ## 为什么需要自定义验证规则? 默认的验证规则虽然能满足大部分基础需求,但实

gitblog_00625的博客 1199

parsley.js自定义验证规则之大小写

这两天在写页面时,需要自己添加一个验证规则。input输入框添加了...

weixin_33835103的博客 340

JAVA-参数验证 Validation分组校验&自定义校验

有时候同一个请求对象会在多个场景的接口中使用,不同业务场景对请求对象的参数校验需求不同,可以使用分组校验来解决. 在Controller中需要在@Validated里加上分组 如果jar包中没有规则校验,自己定义: 实现: 加在对象属性上 下面是Jar包支持的校验

weixin_46690278的博客 5597

如何扩展DNSValidator功能:自定义验证规则与插件开发入门

DNSValidator是一款强大的DNS服务器验证工具,能够通过与基准服务器对比来维护IPv4 DNS服务器列表,确保响应的准确性。对于需要定制化DNS验证流程的开发者来说,掌握扩展其功能的方法可以显著提升工作效率。本文将带你快速掌握自定义验证规则与插件开发的核心技巧,让你轻松打造符合特定需求的DNS验证解决方案。 ## 深入了解DNSValidator的工作原理 DNSValidator的

gitblog_00059的博客 470

json-schema-validator配置指南:自定义验证规则与扩展方法

json-schema-validator是一款功能强大的JSON Schema验证工具,它允许开发者通过灵活的配置自定义验证规则和扩展验证功能。本文将详细介绍如何配置该工具以满足特定的验证需求,包括基础配置、自定义格式验证、扩展验证规则以及实际应用示例。 ## 一、基础配置快速上手 ### 1.1 创建默认配置 使用`ValidationConfiguration`类可以轻松创建默认配置,

gitblog_01137的博客 839

C#中 自定义验证规则ValidationAttribute的使用

C#中 自定义验证规则ValidationAttribute的使用 进行接口请求的时候难免会对请求字段进行验证,验证对象的所有字段的值是否合乎要求,如进行非空检测,长度检测等等。 Required 用法示例 [Required(ErrorMessage="请填写名称")] 如果属性为null,"",或只包含空白字符,会引发异常 (ModelState.IsValid会false) RegularExpression 用法示例 [RegularExpression(pattern:@"^[1-9]\d

SharenFish的博客 2405

《使用ThinkPHP6开发项目》 - 登录接口三【表单验证】

登录验证,表单验证,ThinkPHP6验证,validate

把项目开发中遇到的问题记录下来 1155

自定义注解做数据验证

为了工作也为了更加深入了解掌握java注解的使用,决定自定义注解来实现数据验证。 最开始也考虑使用jsr-303规范来实现功能,但是对于开发人员来说比较累,因为要去实体类对象中添加验证字段注解,而且要进入到method当中。上一篇写的springmvc数据验证就是用jsr-303规范实现的。今天自定义了一下。也挺不错。        自定义注解: @Target(ElementType.ME

cuixuefeng1112的专栏 632
上一篇: mysql设置定时任务
下一篇: 使用Xshell6连接VMware中安装的CentOS7系统
Array*
博客等级 码龄9年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值