2011-01-22 2 views
2
@RequestMapping(value = "/tester/", method = RequestMethod.POST) 
    public String testingonly(@RequestBody List<EachObject> eachobjectlist) throws IOException { 

그렇다면 각 객체 목록을 반복 할 수 있지만 목록의 각 항목은 LinkedHashMap 유형이며 "EachObject"유형으로 간주되지 않습니까?스프링 컨트롤러와 비 직렬화 된 목록 객체

+0

http://stackoverflow.com/questions/4441557/rest-with-spring-and-jackson-full-data-binding –

답변

1

런타임시 type erasure로 인해 일반 유형 EachObject은 런타임에 표시되지 않습니다. Spring은이 정보를 결정할 수 없습니다. Spring은 인자가 원시 타입 인 List을 가지고 있고 어떤 유형의 List도 주입한다는 것을 알고 있습니다.

@axtavt에 따르면, 일반적인 유형의 메소드 인수에 액세스 할 수 있지만 Spring은이를 구현하지 않았으며 향후 구현되지 않을 수도 있습니다. 이것은 제네릭 타입이 인터페이스 또는 추상 클래스가 될 수 있고 Spring은 주어진 인터페이스 또는 추상 클래스의 상응하는 구현을 생성 할 수 없기 때문입니다. 예를 들어, Fruit의 목록을 요청하고 Fruit이라는 두 개의 거의 동일한 하위 클래스가있는 경우 사용할 하위 클래스를 dertemining 할 수 없습니다.

+0

스프링이 이것을 인식하도록하는 방법은 무엇입니까? – cometta

+0

http://forum.springsource.org/showthread.php?t=55885에서 # 3 읽기 – gigadot

+0

http://stackoverflow.com/questions/4596351/binding-a-list-in-requestparam – gigadot