我如何从一个Grails控制器返回404 / 50X状态代码?(How can I return a

2019-07-18 04:02发布

我有一个控制器需要在一定条件下返回一个404页和状态代码。 我似乎无法找出如何在Grails中做到这一点。 一个同事推荐此方法:

response.sendError(HttpServletResponse.SC_NOT_FOUND)

这工作完全正常,但它不是很Grails的,等等。 我知道Rails的渲染方法取状态的说法,但Grails的渲染有没有这样的功能。 是否有什么我失踪,什么是完成这一任务的最好方法是什么?

Answer 1:

有自己的说法设置响应状态足够好。 它看起来并不太难看,是非常简单的:

response.status = 404;

我已经成功地使用这种自己和看到其他人做这种方式太。 由于它只是一个二传手,你也可以做设置状态后,其他的东西。 无论状态设置最后将是HttpServletResponse的使用什么时,它实际上将响应返回给客户端。



Answer 2:

response.sendError(404)将与Grails的工作UrlMappingsresponse.status = 404没有出于某种原因。 如果你想呈现一个自定义404错误页面,这是非常有用的,而不是仅仅发送404回浏览器。



Answer 3:

我不知道是什么版本的开始,但在Grails的2.2.1,你可以这样做:

render(status: 503, text: 'Failed to do stuff.')

http://grails.org/doc/2.2.1/ref/Controllers/render.html



Answer 4:

response.sendErrorresponse.setStatus是仅有的两个方法,我知道的。 如果static import HttpServletResponse ,那么它是不是“非Grails的样”。



文章来源: How can I return a 404/50x status code from a Grails Controller?