当对 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);
}
}
Run Code Online (Sandbox Code Playgroud)
public class LatinString {
@Pattern(regexp = "[A-Za-z]*")
private String value;
public LatinString(String value) {
this.value = value;
}
public String getValue() {
return value; …Run Code Online (Sandbox Code Playgroud)