使用Jersey查询参数验证

时间:2015-09-09 16:33:10

标签: 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, 
        @QueryParam(value = "value1") String value1, 
        @QueryParam(value = "value2") String value2, 
        @QueryParam(value = "value3") String value3) {
        ...
}

现在我的问题是我需要验证输入。我主要是为了确保value1,value2和value3遵循特定的格式。我还想确保这些参数不为空。

我查看了Jersey的Bean Validation文档,但似乎很难遵循。这可能是因为我对Jersey框架还有些新意​​。

那么如何设置查询参数验证呢?是否更容易关注我可能被引导到的资源/示例?感谢

1 个答案:

答案 0 :(得分:9)

如果@ 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) {


}