2011-11-10 10 views
5

मैंने स्क्वायर एमवीसी नियंत्रक में वसंत बीन्स आदि तक पहुंचने के लिए सर्वलेट काम किया है। सामान्य सर्वलेट request.getPathInfo() में क्यों नहीं null वापस, लेकिन वसंत नियंत्रक में मुझे शून्य मान मिलता है? मुझे पता है कि मैं @PathVariable का उपयोग कर सकता हूं, लेकिन आश्चर्य कीजिए कि इस विधि के परिणाम अंतर क्यों हैं?स्प्रिंग एमवीसी नियंत्रक - getPathInfo() शून्य

@RequestMapping(value = {"/test", "/test/*"}) 
public void test(HttpServletRequest req, HttpServletResponse res) { 

    log.info(req.getPathInfo() == null); // true! 

    if (req.getMethod().equalsIgnoreCase("get")) { 
     // analogue to doGet... 
    } else { 
     // analogue to doPost... 
    } 

} 
+0

यूआरएल क्या मार रहा है? –

+0

यूआरएल: 'http: // localhost: 8080/myApp/test/hello'। 'req.getPathInfo()' shuld return '/ हैलो' – marioosh

उत्तर

6

मुझे लगता है कि समाधान()

getPathInfo की जावाडोक अतिरिक्त पथ जानकारी सर्वलेट पथ का अनुसरण लेकिन क्वेरी स्ट्रिंग के पहले आता है और एक "/" वर्ण के साथ शुरू होगा में है।

वसंत के मामले में सर्वलेट पथ पूरा पथ इसलिए है अगर आप getServletPath फोन() यह हमेशा वापस आ जाएगी पूर्ण यूआरआई और getPathInfo() कुछ भी नहीं वापस आ जाएगी।

+0

यह निश्चित रूप से अब तक सही उत्तर के रूप में चिह्नित किया जाना चाहिए। –

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