Java 使用Jersey进行查询参数验证
我在Java中使用Jersey作为一个简单的web服务器。我试图处理url查询参数,比如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,
/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将以违反直觉的消息进行响应。