2010-02-10 19 views
11

Denetleyicimde, kullanıcının belirli eylemi gerçekleştirip gerçekleştiremeyeceğini görmek için bir izin kontrolü yapıyorum. Eğer yapamazlarsa, 404'e dönmek istiyorum.Spring MVC 3 - 404 ile yanıt vermek ister misiniz?

Spring'e 404'ü iade etmesini nasıl söyleyebilirim?

+5

Bkz. Http://stackoverflow.com/questions/2066946/trigger-404-in-spring-mvc-controller – axtavt

+0

@axtavt Bu sayfadaki yanıt benim kullandığım şeydir. Teşekkürler – Kyle

+2

Gerçekten bir 403 ile cevap vermelisiniz .. –

cevap

21

Bir istisna atmak ve bir kontrolör düzey yönteminde her şeyin üstesinden gelebilecek:

@Controller 
public class MyController { 

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

Varsa denetleyici yöntemi, bir UnauthorizedException. atmak, yukarıdaki işleyici yöntemi, işlemek ve bir 404 hatası döndürmek için çağrılır.

+0

Bunu işlemek için gerçekten kaygan bir yol. –

+2

İlkbaharın daha yeni sürümünde, denetleyicinize NoSuchRequestHandlingMethodException öğesini atabilirsiniz. – autra

-3

Sen HttpException ve yol 404 kod temel kurucu adresinin istisna türetebilirsiniz:

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

Ben Spring.NET olduğunu tahmin ediyorum - Baharda HttpException sınıfı yok. – skaffman

+0

Üst sınıf yapıcısını çağırmak için bu sözdizimi de C#. – jjmontes

+0

uzatıyor (:) de – Panthro

İlgili konular