に私は、カスタムバリデータを作成するには、このチュートリアルに従っ: http://codetutr.com/2013/05/29/custom-spring-mvc-validation-annotations/カスタムValidatorはコントローラのメソッド
そして、この1によれば、JSR-303の検証アノテーションで要求agumentsを検証することが可能です: https://raymondhlee.wordpress.com/2015/08/29/validating-spring-mvc-request-mapping-method-parameters/
マイカスタムConstraintValidatorは呼び出されません。ここに私のコードです:
コントローラー:
@RestController
@RequestMapping(value = "/json")
@Validated
public class JsonResource {
@RequestMapping(method = POST, consumes=APPLICATION_JSON_VALUE"))
public void postJson(@SafeHtml @RequestBody JsonNode jsonQuery){
// post a foo
}
}
SafeHtml注釈:
@Documented
@Constraint(validatedBy = {SafeHtmlJsonValidator.class})
@Target({ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface SafeHtml {
String message() default "{SafeHtml}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
カスタムConstraintValidator:
@Component
public class SafeHtmlJsonValidator implements ConstraintValidator<SafeHtml, JsonNode> {
@Override
public void initialize(SafeHtml constraintAnnotation) {}
@Override
public boolean isValid(JsonNode value, ConstraintValidatorContext context) {
// validate my JSON
return true;
}
}
問題はSafeHtmlJsonValidator.isValid()
が呼び出されないことです。春4.2.6.RELEASE
のような直接法の分野に
を検証アノテーションを追加することができます
MethodValidationPostProcessor
を追加することができます
DTO
にすべてを変換したくない場合関連性があるかどうかわからない場合は、投稿の作者がyear.clss参照を持つSubscriber.javaを作成しましたが、あなたは@SafeHtml権限を使用していますJsonポストリクエストメソッドのパラメータ。 – Zeus