通过Http参数将复杂对象列表发送到Spring MVC Rest控制器

时间:2019-01-13 10:27:52

标签: java spring-mvc spring-restcontroller http-parameters

我的POJO

public class SearchCriteria {
    private String key;
    private String operation;
    private Object value;

    default constructor, parameters constructor, setters and getters....
}

我的RestController方法签名。

@GetMapping("/subscribers")
public ResponseEntity<List<SubscriberDTO>> getAllSubscribers(Pageable pageable,
    @RequestParam(name = "lstSearchCriteria", required = false) List<SearchCriteria> lstSearchCriteria)

现在,我希望能够通过HttpParams来获取getAllSubscribers()方法所需的SearchCriteria列表。

我尝试了几种不同的方式来做,但是我要么采取以下措施:   无法将类型“ java.lang.String”的值转换为必需的类型“ java.util.List”异常

列表为空

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

谢谢你们的答复。

我采取了另一种方法,我希望你们对此发表评论。

RestController方法签名现在:

 public ResponseEntity<List<SubscriberDTO>> getAllSubscribers(Pageable pageable,
    @RequestParam(name = "jsonSearchCriteriaList", required = false) String jsonSearchCriteriaList)

通过Jackson API,我从一个新的Util类中构建了一个List,用于此目的...

 ObjectMapper mapper = new ObjectMapper();
 mapper.readValue(json, new TypeReference<List<SearchCriteria>>(){});

然后一切都按预期工作!

你怎么看?