1
私はgetMappingとpathValueとコントローラのメソッドを持っていますコードはエラーを出すことはありませんが、プログラムは自分のカスタム検証クラスには絶対に入りません。春ブーツHTTP GETカスタム検証
¿この問題を解決するにはどうすればよいですか? ¿パスの変数をカスタム検証で検証するにはどうすればよいですか?
私はgetMappingとpathValueとコントローラのメソッドを持っていますコードはエラーを出すことはありませんが、プログラムは自分のカスタム検証クラスには絶対に入りません。春ブーツHTTP GETカスタム検証
¿この問題を解決するにはどうすればよいですか? ¿パスの変数をカスタム検証で検証するにはどうすればよいですか?
私は私の問題を解決しました。春はパス変数を検証するためにいくつかの問題を抱えている... まず、あなたがこのようなMethodValidationPostProcessorで設定クラスを追加する必要があります。
/**
* this class is required to use our custom path variable validation on
* the controller class
*/
@Configuration
class ValidatorConfiguration {
@Bean
MethodValidationPostProcessor methodValidationPostProcessor() {
return new MethodValidationPostProcessor()
}
}
さて、コントローラクラスに、@Validated注釈を追加することが重要です
@RestController
@Validated
class YourController class {
}
今パス変数のカスタム検証はつもり作品は、あなたが例外をキャッチしたい場合は、お使いのコントローラにこのメソッドを追加し、次のとおりです。
@ControllerAdvice
class GlobalExceptionHandler {
@ExceptionHandler(value = [ ConstraintViolationException.class ])
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
String handle(ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations()
StringBuilder strBuilder = new StringBuilder()
for (ConstraintViolation<?> violation : violations) {
strBuilder.append(violation.getMessage() + "\n")
}
return strBuilder.toString()
}
}