我创建了以下注释,将其用作Spring MVC验证的一部分。不幸的是,我收到以下异常:
约束注释类型必须具有至少一个元素 类型FIELD,METHOD,TYPE或ANNOTATION_TYPE作为目标。
在ElementType.PARAMETER
注释中是否禁止注释使用@Target
?
package com.jason.app.service.control.validator;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
@Target(ElementType.PARAMETER)
//@Target({PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {ZipCodeValidator.class})
public @interface ZipCode {
String message() default "Must be a valid 5-digit zip code";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
注释的用法示例:
public ResponseBody<List<Order>> getOrdersByZipCode(@Valid @ZipCode String zipCode) {
// method body
}
Java版本是Java 8。