При использовании проверки параметров Spring MVC @RequestMapping
метод Spring отвечает различными кодами состояния в зависимости от типа параметра:
- Для недопустимых параметров
@RequestBody
Spring отвечаетс 400 - Для недопустимых параметров
@RequestHeader
, @PathVariable
и @RequestParam
Spring отвечает 500.
Можно ли это изменить, чтобы Spring ответил тем же 400ответ во всех случаях?
Это мой код:
@Controller
@Validated
public class WebController {
@RequestMapping(method = RequestMethod.POST, path = "/action")
public ResponseEntity<String> doAction(
@RequestHeader("Header-Name") @Valid LatinString headerValue,
@RequestBody @Valid Struct body) {
return new ResponseEntity<>(HttpStatus.OK);
}
}
public class LatinString {
@Pattern(regexp = "[A-Za-z]*")
private String value;
public LatinString(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
public class Struct {
@Pattern(regexp = "[A-Za-z0-9.-]{1,255}")
private String domain;
public String getDomain() {
return domain;
}
}