Edw*_*ges 4 validation spring spring-mvc bean-validation
是否可以将 Spring 验证框架与 Spring MVC 一起使用来验证 HTTP 请求标头的存在和值?
要检查请求标头的存在,您不需要验证框架。请求头参数默认是必填的,如果请求中缺少必填头,Spring MVC 会自动响应 400 Bad Request。
所以下面的代码会自动检查标题“Header-Name”的存在......
@PostMapping("/action")
public ResponseEntity<String> doAction(@RequestHeader("Header-Name") String headerValue) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
...如果标题是可选的,则注释需要替换为:
@RequestHeader(name = "Header-Name", required = false)
Run Code Online (Sandbox Code Playgroud)
要检查请求标头的值,可以使用 Spring 验证框架。为此,您需要
@Validated到控制器类。这是实现此功能之前所需的解决方法。在请求头参数中添加 JSR-303 注释,例如
@RequestHeader("Header-Name") @Pattern(regexp = "[A-Za-z]*") String headerValue
Run Code Online (Sandbox Code Playgroud)但是请注意,如果标头值无效,这将导致 500。检查此问题以了解如何获取此案例的正确状态代码(即 400)。
| 归档时间: |
|
| 查看次数: |
13279 次 |
| 最近记录: |