Java 如何使用@QueryParam(“列表”)最终列表从@get获取值<;MyDTO>;listDTO
我有一个服务应该收到一个Java 如何使用@QueryParam(“列表”)最终列表从@get获取值<;MyDTO>;listDTO,java,rest,jax-rs,Java,Rest,Jax Rs,我有一个服务应该收到一个列表,在我的情况下,FaturamentoDTO。。。例: @GET @Path(value="/teste") @Produces(MediaType.APPLICATION_JSON) public List<FaturamentoDTO> teste(@QueryParam("list") final List<FaturamentoDTO> listFatsDTO) { for (Fatura
列表
,在我的情况下,FaturamentoDTO。。。例:
@GET
@Path(value="/teste")
@Produces(MediaType.APPLICATION_JSON)
public List<FaturamentoDTO> teste(@QueryParam("list") final List<FaturamentoDTO> listFatsDTO) {
for (FaturamentoDTO f : listFatsDTO) {
// do my stuff...
}
return listFatsDTO;
}
@GET
@路径(value=“/teste”)
@产生(MediaType.APPLICATION_JSON)
公共列表测试(@QueryParam(“列表”)最终列表列表FATSDTO){
for(FaturamentoDTO f:列表FATSDTO){
//做我的事。。。
}
返回列表FATSDTO;
}
所以我的问题是,我如何发送和接收这些值
JAX-RS规范规定:
支持以下类型:
1基本类型
具有接受单个字符串参数的构造函数的2种类型
具有名为valueOf的静态方法并带有单个字符串参数的3种类型
4列出、设置或分类数据集,其中T满足上述2或3
但即使使用构造函数,我也无法获得值。如果您发送的不是简单字符串,我建议使用带有适当请求主体的POST。然而,这必须是一个可能的得到 您的客户如何发送请求? 您的客户应发送与以下内容对应的请求:
GET查询参数对复杂的数据结构没有任何特定的支持,因此您需要自己实现它。我遇到了类似的情况,最后使用数据的JSON表示作为查询参数值。例如(请注意,JSON应该是URL编码的,但为了便于阅读,我省略了这一点)
然后,您可以编写一个函数,将JSON解组到FaturamentoDTO中。我使用的是JAXB/MOXy,但这可以使用您选择的JSON处理库来完成。使用POST没有问题。就像我打算使用Android异步Http客户端一样,我的url应该是://url参数:“users[][age]=30&users[][gender]=male&users[][age]=25&users[][gender]=female”
http://service?item={"foo" : "value1", "bar" : "value2"}&item={"foo" : "value3", "bar" : "value4"}