我有一些泽西服务如下
@GET
@Path("/GetUsers")
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
public List<Campania> findUsers(@QueryParam("userName") String User) {
List<User> users= userBL.getUsers();
return users;
}
我的问题是这个方法应该接收10个参数,所以我宁愿只有一个参数:GetUsersFilter,它包含10个参数。
我知道doint的唯一方法是从@GET更改为@POST,但是,这个服务应该是GET。还有另一种方式吗?
答案 0 :(得分:2)
您可以使用@BeanParam注释将多个查询参数(和其他内容)捆绑到一个java对象中:
// parameter object that bundles all parameters
public class UserQueryParams {
@QueryParam("userName")
private String user;
@QueryParam("param2")
private String param2;
...
// getters etc.
}
然后在您的JAX-RS资源方法中,按如下方式使用它:
@GET
@Path("/GetUsers")
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
public List<User> findUsers(@BeanParam UserQueryParams userQuery) {
List<User> users = userBL.getUsers(userQuery);
return users;
}