весна mvc @requestmapping лучшая практика - PullRequest
4 голосов
/ 02 декабря 2010

Проверил официальный реф, нашел миллион способов что-то сделать.
Я думаю, у меня есть 2 варианта использования. 1. вернуть настроенный http-ответ, в основном я отвечаю за заполнение кода статуса, тела ответа (либо XML, либо JSON, либо текста). 2. вернуть модель и вид. view - это, как правило, jsp-страница, заполняющая вид данными из modle.

Мой вопрос: какой путь лучше? можно смешивать их вместе. В моем первом наборе использования можно ли вернуть вид? также возможно иметь оба на них в одном методе. что-то вроде, если A возвращает настроенный http-ответ, если B возвращает ModelAndView.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Вы можете выполнить что-то похожее на то, что вы описываете, используя ContentNegotiatingViewResolver, который может иметь дело с обслуживанием различного контента на основе запроса, без каких-либо изменений в ваших @RequestMapping аннотациях или фактически с чем угодно контроллеры.

Существует множество ресурсов о том, как использовать этот метод, включая this и this

2 голосов
/ 02 декабря 2010

Возвращаемое значение из любого метода обработки запроса (, т. Е. в помеченном аннотацией @RequestMapping) должно либо идентифицировать представление (которое будет генерировать HTTP-ответ), либо генерировать сам HTTP-ответ.

Каждый метод-обработчик стоит отдельно; Я имею в виду, что вы можете вернуть имя представления из некоторых методов-обработчиков и сгенерировать HTTP-ответ в других методах-обработчиках.

Извлечение 15.3.2.3 Поддерживаемые аргументы метода-обработчика и типы возврата в справочном документе Spring 3x по адресу http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/

В качестве опции для генерации HTTP-ответа в методе-обработчике вы можете настроить несколько обработчиков представлений; один или несколько для нормального разрешения вида (страницы jsp, плитки, и т. д. ) и один или несколько для «специального» разрешения вида (XML, JSON, и т. д. ). Для «специальных» представлений вы можете создать свой собственный класс представлений, который расширяет org.springframework.web.servlet.view.AbstractView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...