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

тогда я итерация eachobjectlist, но каждый элементом внутри списка печатает LinkedHashMap, Арент это предполагает, чтобы быть типа «EachObject»?пружина контроллер с Десериализованным списком объектами

+0

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

ответ

1

Из-за type erasure во время выполнения общий тип EachObject отсутствует во время выполнения. Весна не сможет определить эту информацию. Spring знает, что аргумент имеет необработанный тип List, и он будет вводить List любого типа.

Согласно @axtavt, общие типы аргументов метода доступны, но Spring может не реализовывать это и, вероятно, не будет реализовываться в будущем. Это объясняется тем, что общий тип может быть интерфейсом или абстрактным классом, а Spring не сможет создать соответствующую реализацию данного интерфейса или абстрактного класса. Например, если вы запрашиваете список Fruit, и есть два почти одинаковых подкласса Fruit, dertemining, какой подкласс будет использоваться, будет невозможно.

+0

Любое обходное решение, чтобы весна признала это? – cometta

+0

Прочитано # 3 в http://forum.springsource.org/showthread.php?t=55885 – gigadot

+0

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

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