Java 如何在@RestController中自动验证rest参数?
我想自动验证弹簧Java 如何在@RestController中自动验证rest参数?,java,spring,rest,Java,Spring,Rest,我想自动验证弹簧REST服务上的REST参数 我使用@Valid@NotNull尝试了它,但是rest请求不会自动被拒绝,但是dao方法是使用null参数执行的。为什么? @RestController public class RestController { @RequestMapping(value = "/") public Boolean getResponse(@Valid @NotNull @Length(max = 20) String username) {
REST
服务上的REST
参数
我使用@Valid@NotNull
尝试了它,但是rest请求不会自动被拒绝,但是dao方法是使用null参数执行的。为什么?
@RestController
public class RestController {
@RequestMapping(value = "/")
public Boolean getResponse(@Valid @NotNull @Length(max = 20) String username) {
return daoService.lookup(username); //is executed if username = null
}
}
如何自动获取返回的HTTP错误,例如400?下面是一个验证请求参数的示例
public ResponseEntity<AgencyResource> saveAgency(
@Valid @RequestBody AgencyResource agencyResource) {
return new ResponseEntity<AgencyResource>(agencyResource, HttpStatus.OK);
}
公共响应
希望这有帮助
谢谢,
Paul我认为您只是缺少@RequestBody,尽管不确定Spring是否可以验证输入字符串。所以我必须将参数包装在一个复杂的对象中?我想我也可以在字符串上实现验证?我不确定通过注释对字符串进行简单的验证。您也可以编写自定义验证器..有点像..您可能已经知道了..但是@RequestParam(value=“regNo”,required=true)..您可以这样做..但就我所知,这只是检查所需的参数..不确定它是否可以执行最小/最大长度检查,除非您编写验证器。我不知道这一点,如果缺少参数(这是我的主要要求),确保我的方法不会被调用可能是非常好的。