Java 使用Jersey进行查询参数验证

Java 使用Jersey进行查询参数验证,java,jersey,jax-rs,bean-validation,Java,Jersey,Jax Rs,Bean Validation,我在Java中使用Jersey作为一个简单的web服务器。我试图处理url查询参数,比如 /path?value1=X&value2=Y&value3=Z 我能够使用@QueryParam注释提取查询值,如 @GET @Produces(MediaType.APPLICATION_XML) @Path("/path") public String getUpdate(@QueryParam("All") List<String> allParam,

我在Java中使用Jersey作为一个简单的web服务器。我试图处理url查询参数,比如

/path?value1=X&value2=Y&value3=Z
我能够使用@QueryParam注释提取查询值,如

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/path")
public String getUpdate(@QueryParam("All") List<String> allParam, 
        @QueryParam(value = "value1") String value1, 
        @QueryParam(value = "value2") String value2, 
        @QueryParam(value = "value3") String value3) {
        ...
}
@GET
@生成(MediaType.APPLICATION\u XML)
@路径(“/Path”)
公共字符串getUpdate(@QueryParam(“All”)列出allParam,
@QueryParam(value=“value1”)字符串值1,
@QueryParam(value=“value2”)字符串值2,
@QueryParam(value=“value3”)字符串值3){
...
}
现在我的问题是我需要验证输入。我主要是想确保value1、value2和value3遵循特定的格式。我还要确保这些参数不是空的

我查看了Jersey的Bean验证文档,但似乎很难理解。这可能是因为我仍然有点新泽西的框架


那么如何设置查询参数验证呢?是否有更容易遵循的资源/示例可供我参考?感谢@VA31链接,如果您的球衣足够最新,您可以像这样使用bean验证

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/path")
public Response getUpdate(
    @QueryParam("value1")
    @NotNull
    @Size(min = 1, max = 255)
    @Pattern(regexp = "\\d+")
    String value1, 
    @QueryParam("value2")
    @Min(52)
    @Max(53)
    int value2, 
    @QueryParam("value3")
    @NotNull
    Integer value3) {


}

如果所需的验证结果为假,jersey会给出错误的请求吗?@PratikSinghal是的<代码>400将以违反直觉的消息进行响应。