0
私はspring-bootをバックエンドサーバーとして使用します。それには数十の行動方法があります。通常通りそれらの中にはバリデーションが含まれています。実際には私はBindingResultを使用し、HTTP 400ステータスを返すための検証エラーを返します。ErrorHandlerのフォーム検証結果の処理
@CrossOrigin
@RestController
public class ValidationTestController {
@RequestMapping(value = {"/validation-test", "/validation-test/"}, method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> login(@RequestBody @Valid final TestData data, final BindingResult result) {
if (result.hasErrors()) {
return new ResponseEntity<>("Sorry incoming data is not valid!", HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>("OK!", HttpStatus.OK);
}
private static final class TestData {
@NotNull
private String value;
}
}
私の目的はfollpwing行を削除します
if (result.hasErrors()) {
return new ResponseEntity<>("Sorry incoming data is not valid!", HttpStatus.BAD_REQUEST);
}
は、私見では、認証および監査などの横断的関心事です。私は1つのグローバルErrorHandlerメソッドでそれを処理したい。メソッドを実行する前にCustomValidationExceptionをスローすることは可能です。だから私はErrorControllerで例外を処理することができます。