2015-06-21 66 views
1

我想將一個列表作爲參數,但列表的值不對應於java版本列表。例如@QueryParam(「orderBy」)List orderBy) 該列表的值爲[age,name]作爲元素。Jersey,@QueryParam List <String>

是否有可能分開的值。像第一元素年齡和第二元素名稱一樣。

`

@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

無法自動識別。每個查詢參數都被球衣作爲字符串讀取,然後嘗試在您指定的參數的數據類型中進行轉換。 你必須拆分參數String或客戶端發送多個相同名稱的參數,並像多值映射一樣讀取它們,其中鍵是參數名,值是包含所有值的列表。

0

使用對象。你可以創建一個ActivitiesRequest類,然後在類中定義你的變量。你也可以爲你的迴應做到這一點。

相關問題