Подтвердить что ты не робот

Метод рендеринга контроллеров Grails vs отвечает

Я только что понял, что для контроллера Grails существует другой метод рендеринга 'response'.

В чем разница между Отвечать и рендерить, если мы хотим отобразить представление в контроллере.

4b9b3361

Ответ 1

В методе ответа используется согласование содержимого для ответа на наиболее подходящий тип контента на основе заголовка запроса ACCEPT.

Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8, application/json

Таким образом, потребитель вашего сайта может выбрать способ возврата данных. Это может быть не самый лучший вариант, если вы хотите принудительно установить определенный тип возврата. Например: вы создаете REST api и хотите вернуть json или xml, если пользователь запрашивает test.html, тогда они могут возвращать ваши данные в формате, который вы не хотите поддерживать. В противном случае ответ может быть простым способом поддержки нескольких форматов возврата без их программирования отдельно.

Render явно определяет формат, в котором вы хотите вернуть свои данные:

(Примеры из документации)

render Book.list(params) as JSON
render Book.get(params.id) as XML

// render with status code
render(status: 503, text: 'Failed to update book ${b.id}')

Дополнительная информация:

Ответ: http://grails.org/doc/latest/ref/Controllers/respond.html Render: http://grails.org/doc/latest/ref/Controllers/render.html