Jersey 泽西岛,@QueryParam列表<;字符串>;

Jersey 泽西岛,@QueryParam列表<;字符串>;,jersey,query-parameters,Jersey,Query Parameters,我想将列表作为参数,但列表的值与java版本列表不对应。例如@QueryParam(“orderBy”)列表orderBy) 此列表的元素值为[age,name] 是否可以单独设置该值。如第一元素年龄和第二元素名称 ` @GET @路径(“/范围”) @产生({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML}) 公共响应searchForActivitiesWithRange(@QueryParam(value=“description”

我想将列表作为参数,但列表的值与java版本列表不对应。例如@QueryParam(“orderBy”)列表orderBy) 此列表的元素值为[age,name]

是否可以单独设置该值。如第一元素年龄和第二元素名称

`

@GET
@路径(“/范围”)
@产生({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
公共响应searchForActivitiesWithRange(@QueryParam(value=“description”)列表描述,
@QueryParam(value=“durationFrom”)int durationFrom,
@QueryParam(value=“durationTo”)int durationTo){
列出活动=activityRepository.FindBydDescription和Duration(描述、durationFrom、durationTo);
if(activities==null | | activities.size()==0){
返回Response.status(status.NOT_FOUND).build();
}
返回Response.ok();
}`

不是自动生成的。jersey将每个查询参数作为字符串读取,然后尝试转换为指定参数的数据类型。
您必须拆分参数字符串,或者在客户端发送多个同名参数,并像多值映射一样读取它们,其中键是参数名称,值是包含所有值的列表。

使用对象。您可以创建ActivitiesRequest类,然后在该类中定义变量。你也可以这样做来回应

@GET
@Path("/range")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Response searchForActivitiesWithRange(@QueryParam(value = "description")List<String> descriptions,
                                             @QueryParam(value = "durationFrom") int durationFrom,
                                             @QueryParam(value = "durationTo") int durationTo) {


    List<Activity> activities = activityRepository.findByDescriptionandDuration(descriptions,durationFrom,durationTo);

    if (activities == null || activities.size() == 0) {
        return Response.status(Status.NOT_FOUND).build();
    }

    return Response.ok().entity(new GenericEntity<List<Activity>>(activities){}).build();
}`