【发布时间】:2018-02-05 20:14:00
【问题描述】:
我使用javax.validation.constraints 注解来验证请求参数。我需要验证电子邮件,所以我创建了一个注释 @EmailValid,下面提供了 sn-p:
@Email(message = "Please provide a valid email address")
@Pattern(regexp = ".+@.+\\..+", message = "Please provide a valid email address")
@Target({METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = {})
@Documented
public @interface EmailValid {
String message() default "Please provide a valid email address";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
但它仅适用于单个字符串字段,例如:
@ResponseStatus(value = HttpStatus.OK)
@RequestMapping(value = "/sendEmail", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseVO> sendEmail(@EmailValid String email) {
// some code for sending email
}
我需要的是验证电子邮件地图。我有一张地图Map<String, String> users,其中键是 userId,值是电子邮件。所以我的控制器中有这样的方法:
@ResponseStatus(value = HttpStatus.OK)
@RequestMapping(value = "/sendEmails", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseVO> sendEmails(Map<String, String> users) {
// some code for sending email
}
问题是如何使用我的注释@EmailValid 和其他javax.validation.constraints 注释在此处验证地图值?
【问题讨论】:
标签: java spring validation spring-mvc