Jersey框架中的映射方法

时间:2011-03-25 14:52:45

标签: java web-services jersey

是否可以将方法映射到具有ID和参数的URL路径的方法调用?例如: 的 HTTP://本地主机/ WS / UpdateUser两个/ 32332名=约翰PSW = 123

public void updateUser(Sting name,String psw){..}

似乎当前的@PathParam注释仅支持路径中的参数,例如: 的的http://本地主机/ WS / UpdateUser两个/ 32332 /约翰/ 123

2 个答案:

答案 0 :(得分:4)

尝试使用@QueryParam捕获namepsw参数: -

public void updateUser(@QueryParam Sting name, @QueryParam String psw) {
   ..
}

答案 1 :(得分:0)

您可以在一个方法中组合@QueryParam和@PathParam:

@GET
@Path("/user/{userId}")
public ShortLists getShortListsOfUser(@PathParam("userId") String userId,
                                    @QueryParam("pageNumber") Integer pageNumber,
                                    @QueryParam("pageSize") Integer pageSize,
                                    @Context UriInfo uriInfo) {
   /*do something*/
}

此方法匹配http://localhost/api / user / 222?pageNumber = 1& pageSize = 3


使用UriBuilder运行此方法时,请注意使用queryParam:

URI uri = getBaseUriBuilder().path("/user/user111").queryParam("pageSize", 2)
              .queryParam("pageNumber", 3).build();

这不起作用: getBaseUriBuilder()。path(“/ user / user111?pageSize = 2& pageNumber = 3”)。build(); (因为构建器将%3F 替换为问号)