2010-02-10 4 views
11

내 컨트롤러에서 사용자가 특정 작업을 수행 할 수 있는지 확인하기 위해 사용 권한을 확인합니다. 가능하지 않다면 404를 반환하고 싶습니다.Spring MVC 3 - 404 요청에 응답 하시겠습니까?

404를 반환하는 방법은 무엇입니까?

+5

참조 http://stackoverflow.com/questions/2066946/trigger-404-in-spring-mvc-controller – axtavt

+0

@axtavt이 페이지의 대답은 제가 사용했던 것입니다. 감사합니다 – Kyle

+2

당신은 정말로 403으로 응답해야합니다. –

답변

21

당신은 예외를 발생 및 컨트롤러 수준의 방법으로 처리 할 수 ​​

@Controller 
public class MyController { 

    @ResponseStatus(NOT_FOUND) 
    @ExceptionHandler({UnauthorizedException.class}) 
    public void handle() { 
     // ... 
    } 
} 

있는 경우 컨트롤러 메소드가 UnauthorizedException.이면, 위 핸들러 메소드가 호출되어 처리되고 404 오류가 리턴됩니다.

+0

정말 매끄러운 방식으로 처리합니다. –

+2

최신 버전의 Spring에서 컨트롤러에 NoSuchRequestHandlingMethodException을 던져 넣을 수 있습니다. Google의 첫 번째 페이지에 여전히 표시되어 있기 때문에 여기에 의견을 말합니다. – autra

-3

당신은 HttpException 및 경로 (404) 코드를 기본 생성자에서 예외를 유도 할 수있다 :

public class MyNotFoundException : HttpException 
{ 
    public MyNotFoundException(string message, Exception inner) 
     : base(404, message, inner) 
    { 
    } 
} 
+0

저는 Spring.NET이라고 추측합니다 - Spring에는 HttpException 클래스가 없습니다. – skaffman

+0

수퍼 클래스 생성자를 호출하는 구문은 C#입니다. – jjmontes

+0

을 확장 (:)으로 사용합니다. – Panthro

관련 문제