ValidatorUtil字段验证工具类

2023-12-19

字段验证工具类

package com.aa.bb.cc.common.utils;


import com.aa.bb.cc.common.exception.BusinessException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;


public class ValidatorUtil {
    private static Validator validator;

    static {
        validator = Validation.buildDefaultValidatorFactory().getValidator();
    }

    /**
     * 校验对象
     * 
     * @param object 待校验对象
     * @param groups 待校验的组
     * @throws BusinessException 校验不通过,则报RRException异常
     */
    public static String validateEntity(Object object, Class<?>... groups)
            throws BusinessException {
        Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
        if (!constraintViolations.isEmpty()) {
            StringBuilder msg = new StringBuilder();
            for (ConstraintViolation<Object> constraint : constraintViolations) {
                msg.append(constraint.getMessage()).append("<br>");
            }

            return msg.toString();
        }
        return null;
    }

	/**
	 * 校验对象
	 * @param entity
	 * @param exceptFields
	 * @param <T>
	 */
	public static <T> void validate(T entity, String... exceptFields){
		Set<ConstraintViolation<T>> set=validator.validate(entity);
		if(CollectionUtils.isNotEmpty(set)){
			for (ConstraintViolation<T> item : set) {
				String field = item.getPropertyPath().toString();
				if (!isExcept(field, exceptFields)) {
					String message = item.getMessage();
					throw new BusinessException(1,message);
				}
			}
		}
	}

	/**
	 * 判断属性是否属于例外属性列表
	 * @param field
	 * @param exceptFields
	 * @return
	 */
	private static boolean isExcept(String field, String... exceptFields) {
		if (exceptFields == null)
			return false;
		for (String obj : exceptFields) {
			if (StringUtils.isNotBlank(obj) && field.indexOf(obj) >= 0) {
				return true;
			}
		}
		return false;
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ValidatorUtil字段验证工具类 的相关文章

  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • Netbeans 8 不会重新加载静态 Thymeleaf 文件

    我通过 Maven 使用 Spring Boot 和 Thymeleaf 当我进行更改时 我似乎无法让 Netbeans 自动重新部署我的任何 Thymeleaf 模板文件 为了看到更改 我需要进行完整的清理 构建 运行 这需要太长的时间
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个

随机推荐

  • 四大校招是否可以有内推?机会大吗?

    四大也是有内推的 机会大小还是看你的实力了 需要自己评估 内推机会可以从这些渠道找一下 具体根据自己的情况来 熟人内推 能找到熟人内推是最好的 但是也很考验人脉 付费内推 有些职业培训机构会做付费内推 价格不菲 不太建议 社交媒体 比如 小
  • setbcdlocale.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个setbcdl
  • 免费图片文字识别软件好用吗?分享这3个图文转换利器给你

    有什么软件可以自动识别图片文字吗 当然有了 随着科技的不断发展 越来越多的软件和应用涌现出来 帮助我们更轻松地识别图片中的文字 这些软件不仅可以帮助我们快速准确地获取图片中的信息 还为我们提供了更多的便利和效率 无论是学习 工作还是生活中
  • k8s集群内部署nexus

    一 前言 在k8s集群中部署nexus服务需要使用到pv pvc服务来存储nexus的数据 需要使用service服务来提供对外访问nexus服务的端口 需要使用deployment服务来管理nexus服务 接下来就是用这些服务来在k8s集
  • Python数据分析学习路线详细版总结

    数据分析人人都有必要掌握一点 哪怕只是思维也行 下面探讨Python数据分析需要学习的知识范畴 结合自己的经历和理解 总结的 学习大纲 有些章节带有解释 有些没有 当然 关于学习范畴 可能每个人的理解都不太一样 以下仅供参考 1 数据分析思
  • 干货 | Sqlmap常用手册(收藏)

    sqlmap常用手册 目录 sqlmap常用手册 一 sqlmap介绍 二 常用命令 二 进阶命令 technique BEUST prefix与 suffix level 三 注入https网站
  • 《OCAD光学系统自动设计程序》好书分享

    OCAD是一款具有鲜明工程化特色的中国光学自动设计软件 程序重点在于可以首先进行复杂光学系统的初始布局 进行设计前期的总体方案设计 可以对各类典型光学系统自动进行初始结构设计 作为一款光学系统辅助设计软件 SEEOD以光的直线传播 数学几何
  • Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

    前言 随着Web应用程序的不断发展 自动化测试已成为项目开发中必不可少的一环 然而 验证码的出现却经常会使自动化测试变得更具挑战性 为了解决这个问题 我们需要一种方法来自动识别和处理验证码 从而提高自动化测试的效率和准确性 本文将介绍如何封
  • 如何学习Python数据分析,最全路径图送给你(100天Get新技能)

    和很多同学接触过程中 我发现自学Python数据分析的一个难点是资料繁多 过于复杂 大部分网上的资料总是从Python语法教起 夹杂着大量Python开发的知识点 花了很多时间却始终云里雾里 不知道哪些知识才是真正有用的 本来以为上手就能写
  • 黑马程序员《PHP基础案例教程》第2版课后练习—第10章

    第10章课后练习 答案均参考教材官方发布的PPT 以下是下载PPT的页面 人民邮电出版社教育社区 PHP基础案例教程 第2版 图书 人邮教育社区 一 填空题 1 要想开启GD库 需要打开php ini 将 extension php gd2
  • 软件测试经典面试题:如何进行支付功能的测试?

    非现金支付时代 非现金支付已经成为了生活不可或缺的一部分 我们只需要一台手机便可走遍全国各地 前提是支付宝 微信有钱 lt 00 gt 那么作为测试人员 支付测试也是非常重要的一环 那么下面我就结合一下我的工作中遇到的一些问题 总结一下常见
  • 《基于Essential Macleod软件的光学薄膜设计技术》(第二版 精装版)

    内容简介 Macleod软件自带的用户手册功能全面 其介绍涵盖了软件的方方面面 能够使用户快速的了解和熟悉软件的基本操作 然而 为了顺应目前薄膜行业的需求 急需一本能够契合软件设计和实际加工需要的专业书籍 以能够帮助薄膜领域的同行高效的完成
  • 《Techwiz LCD 3D中文手册》好书分享

    目录 前言 1 总览 1 版权 1 更新历史 2 Part I 安装程序 1 1 安装TechWiz LCD 3D 程序 2 2 安装许可证服务程序 4 3 请求许可证 6 3 1 使用 Host ID 程序 6 3 2 使用 Imtool
  • 黑马程序员《PHP基础案例教程》第2版课后练习—第09章

    第9章课后练习 答案均参考教材官方发布的PPT 以下是下载PPT的页面 人民邮电出版社教育社区 PHP基础案例教程 第2版 图书 人邮教育社区 一 填空题 1 使用fopen 函数打开文件后 返回值是 resource 数据类型 2 fil
  • 从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

    Web自动化测试实战项目 使用Selenium和Python完成网站登录功能的自动化测试 本文将介绍如何使用Selenium和Python编写自动化测试脚本 对网站登录功能进行测试 我们将通过模拟用户在网站上输入用户名和密码 并点击登录按钮
  • mysql mha高可用

    一 前言 在原本的一主两从数据库架构中 是没有高可用功能的 当主库挂了时不会自动将剩下的从从升级为主库 只能等待主库恢复才能使用 或者手动切换 但是手动切换后需要更改后端服务中的数据库地址信息 在此情况下 需要引入mha服务来实现一主两从数
  • Java版本+鸿鹄企业电子招投标系统源代码+支持二开+Spring cloud +鸿鹄电子招投标系统

    项目说明 随着公司的快速发展 企业人员和经营规模不断壮大 公司对内部招采管理的提升提出了更高的要求 在企业里建立一个公平 公开 公正的采购环境 最大限度控制采购成本至关重要 为了符合国家电子招投标法律法规及相关规范 以及审计监督要求 我们决
  • SAP搜索帮助的限制值范围样式

    样式一 点击下拉框 输入筛选数据 筛选搜索帮助列表 样式二 点击漏斗 输入筛选数据 筛选搜索帮助列表 参数设置 不同的样式 通过账号的参数设置决定 第一种样式 没有配置F4METHOD 或者配置了参数值为ActiveX 第二种样式 配置了F
  • CSDN:黑马程序员《PHP基础案例教程》第2版课后练习—第06章

    第6章课后练习 答案均参考教材官方发布的PPT 以下是下载PPT的页面 人民邮电出版社教育社区 PHP基础案例教程 第2版 图书 人邮教育社区 一 填空题 1 HTTP请求消息由 请求行 请求头和请求体三部分组成 2 HTTP响应消息由响应
  • ValidatorUtil字段验证工具类

    字段验证工具类 package com aa bb cc common utils import com aa bb cc common exception BusinessException import org apache commo