服务类具有@GET接受多个参数的操作.这些参数作为查询参数传递给@GET服务调用.
@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(@QueryParam("prop1") String prop1,
@QueryParam("prop2") String prop2,
@QueryParam("prop3") String prop3,
@QueryParam("prop4") String prop4, ...)
Run Code Online (Sandbox Code Playgroud)
这些参数的列表正在增长,因此我想将它们放入包含所有这些参数的单个bean中.
@GET
@Path("find")
@Produces(MediaType.APPLICATION_XML)
public FindResponse find(ParameterBean paramBean)
{
String prop1 = paramBean.getProp1();
String prop2 = paramBean.getProp2();
String prop3 = paramBean.getProp3();
String prop4 = paramBean.getProp4();
}
Run Code Online (Sandbox Code Playgroud)
你会怎么做?这甚至可能吗?
在我正在处理的Web服务中,我需要实现一个带有查询参数的URI /stats?store=A&store=B&item=C&item=D
为了分解它,我需要能够使用查询参数来指定来自多个/所有商店的数据以及来自这些商店的多个/所有商品的数据.到目前为止,我已经能够实现一个查询参数,以便提取项目数据,但我已经迷失了如何实现更多的查询,并且似乎无法找到我之前看到的资源有了这个实现.
到目前为止,我的方法是按照我的方法进行的
@GET
@Path("stats")
public String methodImCalling(@DefaultValue("All") @QueryParam(value = "item") final String item)
{
/**Run data using item as variable**/
return someStringOfData
}
Run Code Online (Sandbox Code Playgroud)
这适用于一个项目,如果我没有在URI中键入参数,将返回所有数据.但是,我不确定如何处理比这更多的参数.
更新:
我已经弄清楚如何通过简单地向方法添加第二个参数来使用2个不同的参数,如下所示:
public String methodImCalling(@DefaultValue("All") @QueryParam(value = "store") final String store,
@DefaultValue("All") @QueryParam(value = "item") final String item)
Run Code Online (Sandbox Code Playgroud)
问题仍然是如何实现相同参数的多个值.