2010-02-10 9 views
11

मेरे नियंत्रक में मैं यह देखने के लिए अनुमति देता हूं कि उपयोगकर्ता कुछ कार्य कर सकता है या नहीं। यदि वे नहीं कर सकते हैं, तो मैं 404 वापस करना चाहता हूं।वसंत एमवीसी 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

वसंत के नए संस्करण पर, आप अपने नियंत्रक में केवल NoSuchRequestHandlingMethodException को फेंक सकते हैं, मैं यहां टिप्पणी करता हूं क्योंकि यह अभी भी Google के पहले पृष्ठ में दिखाई देता है – autra

-3

आप HttpException और पथ 404 आधार निर्माता के कोड से अपने अपवाद प्राप्त कर सकते हैं:

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

मुझे लगता है कि यह Spring.ET है - वसंत में कोई 'HttpException' कक्षा नहीं है। – skaffman

+0

सुपरक्लास कन्स्ट्रक्टर को कॉल करने के लिए यह वाक्यविन्यास सी # भी है। – jjmontes

+0

विस्तार के रूप में (:) साथ ही – Panthro

संबंधित मुद्दे