template respond grails grails-controller

grails - respond - gsp template



El método de renderizado del controlador Grails render vs responder (1)

Me acabo de dar cuenta de que para un controlador Grails hay otro método de representación ''responder''.

¿Cuál es la diferencia entre responder y el método de renderizado si queremos renderizar una vista en el controlador?


El método responder utiliza la negociación de contenido para responder con el tipo de contenido más apropiado según el encabezado de solicitudes ''ACEPTAR''.

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

De esta forma, el consumidor de su sitio puede elegir cómo desea que se devuelvan los datos. Esta puede no ser la mejor opción si desea forzar un tipo de devolución específico. Por ejemplo: está creando una API REST y solo desea devolver json o xml, si el usuario solicita test.html, es posible que se le devuelvan sus datos en un formato que no desea admitir. De lo contrario, responder puede ser una manera fácil de admitir múltiples formatos de retorno sin programarlos por separado.

Render define explícitamente el formato en el que desea devolver sus datos:

(Ejemplos de documentación)

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}'')

Más información:

Responda: http://grails.org/doc/latest/ref/Controllers/respond.html Render: http://grails.org/doc/latest/ref/Controllers/render.html