我有一个控制器需要在一定条件下返回一个404页和状态代码。 我似乎无法找出如何在Grails中做到这一点。 一个同事推荐此方法:
response.sendError(HttpServletResponse.SC_NOT_FOUND)
这工作完全正常,但它不是很Grails的,等等。 我知道Rails的渲染方法取状态的说法,但Grails的渲染有没有这样的功能。 是否有什么我失踪,什么是完成这一任务的最好方法是什么?
我有一个控制器需要在一定条件下返回一个404页和状态代码。 我似乎无法找出如何在Grails中做到这一点。 一个同事推荐此方法:
response.sendError(HttpServletResponse.SC_NOT_FOUND)
这工作完全正常,但它不是很Grails的,等等。 我知道Rails的渲染方法取状态的说法,但Grails的渲染有没有这样的功能。 是否有什么我失踪,什么是完成这一任务的最好方法是什么?
有自己的说法设置响应状态足够好。 它看起来并不太难看,是非常简单的:
response.status = 404;
我已经成功地使用这种自己和看到其他人做这种方式太。 由于它只是一个二传手,你也可以做设置状态后,其他的东西。 无论状态设置最后将是HttpServletResponse的使用什么时,它实际上将响应返回给客户端。
response.sendError(404)
将与Grails的工作UrlMappings
而response.status = 404
没有出于某种原因。 如果你想呈现一个自定义404错误页面,这是非常有用的,而不是仅仅发送404回浏览器。
我不知道是什么版本的开始,但在Grails的2.2.1,你可以这样做:
render(status: 503, text: 'Failed to do stuff.')
http://grails.org/doc/2.2.1/ref/Controllers/render.html
response.sendError
和response.setStatus
是仅有的两个方法,我知道的。 如果static import HttpServletResponse
,那么它是不是“非Grails的样”。