Commit e5f698fd by 段启岩

添加自定义校验:ElementNotBlank

parent 0aa605e9
package cn.meteor.beyondclouds.core.validation.constraints;
import cn.meteor.beyondclouds.core.validation.validator.ElementNotBlankValidator;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* 被验证的参数集合的元素不能为空
* @author meteor
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Documented
@Constraint(validatedBy = ElementNotBlankValidator.class)
public @interface ElementNotBlank {
String message() default "element cannot blank";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Documented
@interface List {
ElementNotBlank[] value();
}
}
......@@ -4,11 +4,12 @@ import cn.meteor.beyondclouds.core.validation.validator.NullOrNotBlankValidator;
import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.constraints.AssertTrue;
import java.lang.annotation.*;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
......@@ -33,6 +34,6 @@ public @interface NullOrNotBlank {
@Retention(RUNTIME)
@Documented
@interface List {
AssertTrue[] value();
NullOrNotBlank[] value();
}
}
package cn.meteor.beyondclouds.core.validation.validator;
import cn.meteor.beyondclouds.core.validation.constraints.ElementNotBlank;
import org.springframework.util.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.Collection;
/**
* ElementNotBlank参数校验器
* @author meteor
*/
public class ElementNotBlankValidator implements ConstraintValidator<ElementNotBlank, Collection<String>> {
@Override
public boolean isValid(Collection<String> value, ConstraintValidatorContext context) {
if (null == value) {
return true;
}
for (String str : value) {
if (StringUtils.isEmpty(str)) {
return false;
}
}
return true;
}
}
package cn.meteor.beyondclouds.modules.blog.form;
import cn.meteor.beyondclouds.core.validation.constraints.ElementNotBlank;
import cn.meteor.beyondclouds.core.validation.constraints.NullOrNotBlank;
import cn.meteor.beyondclouds.core.validation.groups.InsertGroup;
import cn.meteor.beyondclouds.core.validation.groups.UpdateGroup;
......@@ -7,6 +8,7 @@ import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
......@@ -39,8 +41,12 @@ public class BlogForm {
@NullOrNotBlank(message = "请传入有效的博客内容", groups = UpdateGroup.class)
private String content;
@Size(min = 1, message = "请至少传一个topicId", groups = {InsertGroup.class, UpdateGroup.class})
@ElementNotBlank(message = "topicId内容不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private List<String> topicIds;
@Size(min = 1, message = "请至少传一个tagId", groups = {InsertGroup.class, UpdateGroup.class})
@ElementNotBlank(message = "tagId内容不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private List<String> tagIds;
@NotNull(message = "浏览权限不能为空", groups = InsertGroup.class)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment