Java 如何在REST web服务中使用多个参数处理HTTP请求+;限制数字范围

Java 如何在REST web服务中使用多个参数处理HTTP请求+;限制数字范围,java,rest,jax-rs,Java,Rest,Jax Rs,我的目标是处理 http://localhost:8080/getuser?name=Mike&numberOfWorks=2&salary=1 工作数量在0-2之间,工资-从0(无)到2(巨大)。 另外一个要求是为年龄和工资设置默认值。 我已经用Java编写了这段代码,但是它不能正常工作(返回name和两个def值),我没有机会调试它 public Response getPerson( @QueryParam("name") String nam

我的目标是处理

 http://localhost:8080/getuser?name=Mike&numberOfWorks=2&salary=1
工作数量在0-2之间,工资-从0(无)到2(巨大)。 另外一个要求是为年龄和工资设置默认值。 我已经用Java编写了这段代码,但是它不能正常工作(返回name和两个def值),我没有机会调试它

public Response getPerson( 
            @QueryParam("name") String name, 
            @DefaultValue("0") @QueryParam("{numberOfWorks: [0-2]}") int availability, 
            @DefaultValue("0") @QueryParam("{salary: [0-2]") int sort) throws NotFoundException{
        return Response.status(200).entity(name + ", " + availability + ", " + sort).build();
使用上述HTTP时,此方法的返回为

Mike, 0, 0
编辑


不幸的是,使用@Pattern的方法不适用于我。因此,如果有其他选择,我将不胜感激

注释必须提及查询参数的名称:

@QueryParam("numberOfWorks")
如果使用JAX-RS2.0,可以添加

@Pattern("[0-2]")
成功

@QueryParam("numberOfWorks") @Pattern("[0-2]") int availability

注释必须提及查询参数的名称:

@QueryParam("numberOfWorks")
如果使用JAX-RS2.0,可以添加

@Pattern("[0-2]")
成功

@QueryParam("numberOfWorks") @Pattern("[0-2]") int availability

什么是
MPN
?你是说
name
?什么是
MPN
?你是说名字吗?谢谢你的好主意!我实现了JAX-RS2.0(RestEasy 3.0.16),但是,这个注释不是从盒子里做的。我应该下载带有@ValidateRequest的resteasy hibernatevalidator提供程序,还是有其他解决方法?我不知道JAX-RS实现的当前状态。我的答案中的信息来自JAX-RS2.0规范草案。请检查您的实现的当前文档。感谢您的精彩想法!我实现了JAX-RS2.0(RestEasy 3.0.16),但是,这个注释不是从盒子里做的。我应该下载带有@ValidateRequest的resteasy hibernatevalidator提供程序,还是有其他解决方法?我不知道JAX-RS实现的当前状态。我的答案中的信息来自JAX-RS2.0规范草案。请检查您实施的当前文档。