zoukankan      html  css  js  c++  java
  • springboot自定义验证传值范围

    package com.xf.common;
    
    import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
    import static java.lang.annotation.ElementType.CONSTRUCTOR;
    import static java.lang.annotation.ElementType.FIELD;
    import static java.lang.annotation.ElementType.METHOD;
    import static java.lang.annotation.ElementType.PARAMETER;
    import static java.lang.annotation.ElementType.TYPE_USE;
    import static java.lang.annotation.RetentionPolicy.RUNTIME;
    
    import java.lang.annotation.Documented;
    import java.lang.annotation.Retention;
    import java.lang.annotation.Target;
    
    /**
     * 边界值校验
     * @author Lilu
     * @date 2021-7-16 16:57
     */
    
    import javax.validation.Constraint;
    import javax.validation.Payload;
    
    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
    @Retention(RUNTIME)
    @Documented
    @Constraint(validatedBy = { ValueInImpl.class })
    public @interface ValueIn {
    
        String[] in();
    
        String message() default "参数不在允许范围";
    
        Class<?>[] groups() default {};
    
        Class<? extends Payload>[] payload() default {};
    
    }
    package com.xf.common;
    
    import javax.validation.ConstraintValidator;
    import javax.validation.ConstraintValidatorContext;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class ValueInImpl implements ConstraintValidator<ValueIn, String> {
    
        String[] in;
    
        @Override
        public boolean isValid(String value, ConstraintValidatorContext context) {
            for (int i = 0; i < in.length; i++) {
                if (in[i].equals(value))
                    return true;
            }
            return false;
        }
    
        @Override
        public void initialize(ValueIn constraintAnnotation) {
            this.in = constraintAnnotation.in();
            ConstraintValidator.super.initialize(constraintAnnotation);
        }
    
    }
    @PostMapping("test")
        @ApiOperation(value = "0.test", notes = "")
        @ApiOperationSupport(order = 0)
        public Object test(@ApiParam("a") @ValueIn(in = { "1",
                "2" }, message = "hjdfashjfkhsakjf") @RequestParam(value = "a") String a) throws Exception {
    //        DataSourceHolder.setDataSource("2");
            return R.ok();
        }
        @ExceptionHandler(value = ConstraintViolationException.class)
        @ResponseBody
        public Object jsonErrorHandler(HttpServletRequest req, ConstraintViolationException e) throws Exception {
            return R.error(e.getMessage());
        }

    后台兼职接单中,联系我微信:wjf88520

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    iOS开发笔记--Layer 图层圆角、边框 、底纹其他常用操作
    tableView中deselectRowAtIndexPath的作用
    升级到XCode6后,iOS8里设置tableview的setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
    UITableView代理和数据源方法总结
    ios修改textField的placeholder的字体颜色、大小
    iOS-TextField知多少
    iOS开发SVN更新代码不报错却运行不了问题
    apache http server 局域网无法访问
    修改 apache http server 默认站点目录
    批处理 教程(转载)
  • 原文地址:https://www.cnblogs.com/wujf/p/15770576.html
Copyright © 2011-2022 走看看