数据校验工具类

思路,

1、传入要校验的属性以及如果校验不过提示信息

2、如果数据校验不过返回json 格式信息。

3、不满足条件抛出自定义异常,然后在异常处理器中获取信息,return 信息

一、自定义异常

public class LyonException extends RuntimeException{
    private static final long serialVersionUID = 1L;

    private String msg;
    private int code = 500;
    code 默认是500
    public LyonException(String msg) {
        super(msg);
        this.msg = msg;
    }

public LyonException(String msg, int code) {
       super(msg);
       this.msg = msg;
       this.code = code;
   }

 

二、异常处理器

/**
 * 异常处理器
 * @author    lyon
 * @date    2018年3月2日
 */
@RestControllerAdvice
public class LyonExceptionHandler {

    @ExceptionHandler(LyonException.class)
    public R handlerLyonException(LyonException e){
        R r = new R();
        r.put("code", e.getCode());
        r.put("msg", e.getMessage());
        return r;
    }
}

三、返回值R

public class R extends HashMap<String, Object> {
    private static final long serialVersionUID = 1L;

    public R() {
        put("code", 0);
        put("msg", "操作成功");
    }

    public static R error() {
        return error(1, "操作失败");
    }

    public static R error(String msg) {
        return error(500, msg);
    }

    public static R error(int code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    public static R ok(String msg) {
        R r = new R();
        r.put("msg", msg);
        return r;
    }

四、工具类

/**
 * 数据校验
 * @author    lyon
 * @date    2018年3月2日
 */
public abstract class Assert {

    /**
     * @param str 校验的字符串
     * @param msg 提示信息
     */
    public static void isBlank(String str,String msg){
        if(StringUtils.isBlank(str)){
            throw new LyonException(msg);
        }
    }

    public static void isNull(Object object, String message) {
        if (object == null) {
            throw new LyonException(message);
        }
    }
}

五、测试

    @GetMapping("/test")
    @ResponseBody
    public R hello(String name) {
        Assert.isBlank(name, "用户名不能为空");
        return R.ok();
    }

原文地址:https://www.cnblogs.com/lyon91/p/8492355.html

时间: 2024-07-31 06:10:03

数据校验工具类的相关文章

结合AnyChart做报表:一个生成AnyChart图形XML数据的工具类

今天头有点痛,所以不能详细地写了,先把代码贴上来,等身体状况稍微好一点,再继续完善. 1.(主角)一个使用XML模板生成Anychart XML数据的工具类 /** * */ package com.common.anychart; import java.io.InputStream; import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.l

安卓数据持久化工具类总结

程序猿是最懒的生物,开发中从不重复造轮子,实际开发中数据吃就化是必然要处理的一个问题,先总结了几个除处理sqlite外的几个工具类,因为sqlite可以直接用orm,持久化数据有I/O,SharedPreference等等方式. 外置储存卡 package cn.edu.zafu.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java

java校验工具类

import java.util.regex.Matcher;   import java.util.regex.Pattern;     /**  * 验证工具类  * @author admin  *  */ public class Validation {       //------------------常量定义       /**       * Email正则表达式="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0

springmvc返回json数据的工具类

在ssm框架下,MVC向前端返回数据的json工具类代码如下: public class JsonResult<T> { public static final int SUCCESS=0; public static final int ERROR=1; private int state; private T data; private String message; public JsonResult(int state,Throwable e){ this.state=state; t

前端参数统一校验工具类ValidParamUtils

1,前端参数不可信,对于后端开发人员来说应该是一条铁律,所以对于前端参数的校验,必不可少,而统一的前端参数校验工具,对我们进行参数校验起到事半功倍的效果 2,统一参数校验工具ValidParamUtils public class ValidParamUtils { public static void validInputParams(BindingResult bindingResult) throws ParameterValidErrorException { if(bindingRes

Bootstrap分页插件ajax返回数据,工具类的编写

使用Bootstrap分页插件时,需要返回指定的参数,这样Bootstrap才能够识别 需要引入的css: <!-- boostrap table --> <link href="css/bootstrap-table.min.css" rel="stylesheet" /> 需要引入的js: 1 <!-- boostrap table --> 2 <script type="text/javascript&quo

ImageUtil(验证码数据生成工具类)

登录界面时,常常会使用到验证码图片生成,程序如下: package util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.

android 数据下载 工具类

传入图片地址,获得服务器返回的流. 把流转化为byte[]数组

[Android Pro] 常用的android工具类和库

reference to  : http://blog.csdn.net/lovexieyuan520/article/details/50614086 这篇博客主要记录我认为比较有用的Android开源框架或者工具,我会持续添加,推荐给大家 1.这里面包含了很多的工具类,包括数据校验工具类,文件操作工具类,汉字转拼音工具类等. https://github.com/jingle1267/android-utils 2.CWAC,这里面包含不少android开发中具有普遍用途的库 https:/