2015-06-21 3 views
1

Я хочу взять список как параметр, но значение списка не соответствует списку версии java. Например, @QueryParam ("orderBy") List orderBy) Этот список имеет значение [age, name] как элемент.Джерси, @QueryParam List <String>

Возможно ли иметь значение отдельно. Как 1-й элемент и имя второго элемента.

`

@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(); 
}` 

ответ

2

Не автоматически. Каждый параметр запроса читается jersey как String и после этого пытается преобразовать в тип данных указанного вами параметра. Вы должны разделить параметр String или, на стороне клиента, отправить несколько параметров с тем же именем и прочитать их как MultivaluedMap, в которых ключ является именем параметра и значением является список со всеми значениями.

0

Использование объектов. Вы можете создать класс ActivitiesRequest, а затем определить свои переменные в классе. Вы также можете сделать это для своего ответа.

Смежные вопросы