2009-09-15 2 views
51

특정 조건에서 404 페이지와 상태 코드를 반환해야하는 컨트롤러가 있습니다. 나는 Grails에서 이것을 수행하는 방법을 찾을 수 없다. 동료가이 방법을 권장했습니다.Grails 컨트롤러에서 404/50x 상태 코드를 반환하려면 어떻게해야합니까?

response.sendError(HttpServletResponse.SC_NOT_FOUND) 

잘 작동하지만 그다지 Grails와 다릅니다. Rails의 렌더링 메소드가 상태 인수를 취하는 것을 알고 있지만 Grails의 렌더링에는 그러한 기능이 없습니다. 내가 누락 된 것이 있습니까? 이것을 수행하는 가장 좋은 방법은 무엇입니까?

답변

48

자체 상태로 응답 상태를 설정하면 충분합니다. 너무 예쁘게하고 매우 간단하지 않습니다

response.status = 404; 

나 자신 성공적으로 사용했습니다 및 have seen others do it this way도. 단지 세터 일 뿐이므로 상태를 설정 한 후에 다른 작업을 수행 할 수도 있습니다. 마지막으로 설정 한 상태는 실제로 응답을 클라이언트에 다시 보낼 때 HttpServletResponse가 사용하는 것입니다.

+0

링크는 더 이상 작동하지 않습니다. –

+1

@ Al-Punk 고정, 머리 위로 고마워. –

8

response.sendErrorresponse.setStatus은 내가 아는 유일한 두 가지 방법입니다. 만약 당신이 static import HttpServletResponse이라면, 그것은 '그레이들 같지 않은'것이 아닙니다.

42

response.sendError(404)은 Grails UrlMappings으로 작동하지만 response.status = 404은 어떤 이유로 작동하지 않습니다. 브라우저에 404를 다시 보내지 않고 사용자 정의 404 오류 페이지를 렌더링하려는 경우 유용합니다.

관련 문제