有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring MVC 4@RequestParam DTO强制属性

我已经创建了一个DTO对象,它包含@RestController需要接收的参数所包含的属性。其中一些是强制性的,而另一些则不是

控制器方法如下所示:

@RequestMapping(path = "/endpoint_url", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public List<ReturnDTO> endpoint(@RequestParam(required = false) FilterDTO filter) { ... }

我想知道是否有任何方法可以使某些FilterDTO属性成为强制属性,就像使用@RequestParam(required=true)注释一样

我尝试了javax中的@NotNull注释。验证。限制。NotNull但它似乎不起作用

任何想法都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    这个想法是,你需要使用@Validated或@Valid from org。springframework。验证。使用@RequestBody对象进行注释 所以看起来是这样的

    @RequestMapping(path = "/endpoint_url", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public List<ReturnDTO> endpoint(@Validated @RequestParam FilterDTO filter){}
    

    那么filterdo中的所有变量都是可选的,除非您向它们添加@NotNull注释

    所以它将是

    @NotNull
    private String name
    

    这意味着名称不能为null,否则将引发异常