Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在@RestController中自动验证rest参数?_Java_Spring_Rest - Fatal编程技术网

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)..您可以这样做..但就我所知,这只是检查所需的参数..不确定它是否可以执行最小/最大长度检查,除非您编写验证器。我不知道这一点,如果缺少参数(这是我的主要要求),确保我的方法不会被调用可能是非常好的。