programing

Grails 컨트롤러에서 404 / 50x 상태 코드를 반환하려면 어떻게해야합니까?

kingscode 2021. 1. 17. 10:58
반응형

Grails 컨트롤러에서 404 / 50x 상태 코드를 반환하려면 어떻게해야합니까?


특정 조건에서 404 페이지 및 상태 코드를 반환해야하는 컨트롤러가 있습니다. Grails에서이 작업을 수행하는 방법을 찾을 수없는 것 같습니다. 동료가이 방법을 권장했습니다.

response.sendError(HttpServletResponse.SC_NOT_FOUND)

완벽하게 작동하지만 Grails와 같지는 않습니다. Rails의 render 메서드가 상태 인수를 취하는 것을 알고 있지만 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, 그것은 '성배없는'이 아닙니다.

참조 URL : https://stackoverflow.com/questions/1429388/how-can-i-return-a-404-50x-status-code-from-a-grails-controller

반응형