Действия по возврату представления json из контроллера Spring

Мой запрос основан на ajax, и я вызываю один из методов Spring Multiaction Controller, я могу создать файл json, используя библиотеку Gson. Есть ли способ вернуть json-представление из метода контроллера.


person user581805    schedule 24.01.2011    source источник


Ответы (2)


Вы можете просто позволить своему методу вернуть строку JSON, если вы используете аннотацию @ResponseBody и используете один из методов, перечисленных в ответах на мой предыдущий вопрос:

В Spring MVC как я могу установить заголовок типа mime при использовании @ResponseBody

person Sean Patrick Floyd    schedule 24.01.2011
comment
Шон Патрик Флойд: Я видел ваше решение, как я могу сделать то же самое без аннотаций. - person user581805; 24.01.2011
comment
Очень отличное решение, я попробую это решение без аннотаций. - person user581805; 24.01.2011
comment
Шон Патрик Флойд: я не видел классов CharacterStreams, MediaType в Spring 2.5, нужно ли мне загружать какие-либо файлы jar для реализации вашего решения. - person user581805; 24.01.2011
comment
Нет, я предполагаю, что эти типы были добавлены в Spring 3.x. (Я никогда не пробовал MVC в 2.5) - person Sean Patrick Floyd; 24.01.2011
comment
Спасибо, Шон, MediaType из Spring 3.0, здесь я упомяну application/json. Но API CharStreams и Closeables взято из кода Google. Есть ли способ написать ту же функциональность с собственным кодом Java. - person user581805; 24.01.2011
comment
О, вы имеете в виду мое собственное решение, извините. Да, конечно, он просто становится более подробным. CharStreams.copy(CharStreams.newReaderSupplier(json), writer) создает StringReader из строки и копирует все ее символы в PrintWriter. Closeables.closeQuietly(writer) — это просто ярлык для вызова close() в модуле записи и переноса его в блок try/catch/finally. Так что да, вы можете сделать все это на простой Java. - person Sean Patrick Floyd; 24.01.2011
comment
Шон Патрик Флойд: как мне добиться того же с помощью Spring webflow. - person user581805; 26.01.2011

Я полный новичок, но я где-то читал, что когда вы не указываете какое-либо логическое сопоставление представления для контроллера и возвращаете карту модели из метода обработчика (@Controller, @RequestMapping), он должен преобразовать объект модели в json и вернуть Это.

person krsnik    schedule 24.01.2011
comment
Пожалуйста, используйте реальный язык (u не подходит) - person Sean Patrick Floyd; 24.01.2011