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