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;
        }
    }
  • 相关阅读:
    .net winform软件自动更新
    系统升级程序的介绍(转)
    View、ViewGroup (转)
    修改ViewPager调用setCurrentItem时,滑屏的速度
    onSaveInstanceState和onRestoreInstanceState
    onSaveInstanceState(Bundle outState)的调用时机
    如何在Eclipse中查看Android源码或者第三方组件包源码
    MyBatis学习总结(一)——MyBatis快速入门
    ASP.NET提取多层嵌套json数据的方法
    C# 解析 Json数据
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/11318606.html
Copyright © 2011-2022 走看看