zoukankan      html  css  js  c++  java
  • OrderValidator

    package org.linlinjava.litemall.core.validator;
    
    import javax.validation.Constraint;
    import javax.validation.Payload;
    import java.lang.annotation.Documented;
    import java.lang.annotation.Retention;
    import java.lang.annotation.Target;
    
    import static java.lang.annotation.ElementType.*;
    import static java.lang.annotation.RetentionPolicy.RUNTIME;
    
    @Target({METHOD, FIELD, PARAMETER})
    @Retention(RUNTIME)
    @Documented
    @Constraint(validatedBy = OrderValidator.class)
    public @interface Order {
        String message() default "排序类型不支持";
    
        String[] accepts() default {"desc", "asc"};
    
        Class<?>[] groups() default {};
    
        Class<? extends Payload>[] payload() default {};
    }
    package org.linlinjava.litemall.core.validator;
    
    import com.google.common.collect.Lists;
    
    import javax.validation.ConstraintValidator;
    import javax.validation.ConstraintValidatorContext;
    import java.util.List;
    
    public class OrderValidator implements ConstraintValidator<Order, String> {
        private List<String> valueList;
    
        @Override
        public void initialize(Order order) {
            valueList = Lists.newArrayList();
            for (String val : order.accepts()) {
                valueList.add(val.toUpperCase());
            }
        }
    
        @Override
        public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
            if (!valueList.contains(s.toUpperCase())) {
                return false;
            }
            return true;
        }
    }
    package org.linlinjava.litemall.core.validator;
    
    import javax.validation.Constraint;
    import javax.validation.Payload;
    import java.lang.annotation.Documented;
    import java.lang.annotation.Retention;
    import java.lang.annotation.Target;
    
    import static java.lang.annotation.ElementType.*;
    import static java.lang.annotation.RetentionPolicy.RUNTIME;
    
    @Target({METHOD, FIELD, PARAMETER})
    @Retention(RUNTIME)
    @Documented
    @Constraint(validatedBy = SortValidator.class)
    public @interface Sort {
        String message() default "排序字段不支持";
    
        String[] accepts() default {"add_time", "id"};
    
        Class<?>[] groups() default {};
    
        Class<? extends Payload>[] payload() default {};
    }
    package org.linlinjava.litemall.core.validator;
    
    import com.google.common.collect.Lists;
    
    import javax.validation.ConstraintValidator;
    import javax.validation.ConstraintValidatorContext;
    import java.util.List;
    
    public class SortValidator implements ConstraintValidator<Sort, String> {
        private List<String> valueList;
    
        @Override
        public void initialize(Sort sort) {
            valueList = Lists.newArrayList();
            for (String val : sort.accepts()) {
                valueList.add(val.toUpperCase());
            }
        }
    
        @Override
        public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
            if (!valueList.contains(s.toUpperCase())) {
                return false;
            }
            return true;
        }
    }
  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/11318606.html
Copyright © 2011-2022 走看看