<servlet-mapping>
<servlet-name>testServlet</servlet-name>
<url-pattern>/test/*</url-pattern>
</servlet-mapping>
यदि मैं /परीक्षण/पृष्ठ हिट करता हूं तो उपरोक्त काम करेगा। हालांकि, /परीक्षण या /test/ पर काम नहीं करेगा। मैं वसंत MVC का उपयोग कर रहा है, और मेरे अनुरोध मानचित्रण इस प्रकार है:स्प्रिंग एमवीसी में एक सर्वलेट मैपिंग में मैं यूआरएल पैटर्न निर्देशिका की जड़ कैसे मैप कर सकता हूं?
@RequestMapping(value = {"","/"})
संपादित करें:
मैं एक स्वतंत्र परियोजना के साथ की पुष्टि करने की प्रक्रिया में हूँ, लेकिन यह एक बग प्रतीत होता है वसंत के UrlPathHelper के साथ। जब कोई संदर्भ और सर्वलेट पथ होता है, तो निम्न विधि गलत पथ लौटाती है, और आपने बिना किसी पीछे की स्लैश के सर्वलेट को दबाया है।
<servlet-mapping>
<servlet-name>usersServlet</servlet-name>
<url-pattern>/users/*</url-pattern>
</servlet-mapping>
अब मैं इस तरह मेरे नियंत्रकों में से एक में एक अनुरोध मानचित्रण है:
public String getPathWithinApplication(HttpServletRequest request) {
String contextPath = getContextPath(request);
String requestUri = getRequestUri(request);
if (StringUtils.startsWithIgnoreCase(requestUri, contextPath)) {
// Normal case: URI contains context path.
String path = requestUri.substring(contextPath.length());
return (StringUtils.hasText(path) ? path : "/");
}
else {
// Special case: rather unusual.
return requestUri;
}
}
बस एक उदाहरण के रूप चलो कहते हैं कि मैं "व्यवस्थापक" के संदर्भ और निम्नलिखित सर्वलेट-मानचित्रण डालते हैं
@RequestMapping(value = {"","/"})
अगर मैं /व्यवस्थापक मारा/उपयोगकर्ताओं यह काम नहीं करेगा। हालांकि, अगर मैंने /व्यवस्थापक/उपयोगकर्ता/ पर काम किया है तो यह काम करेगा। अब अगर मैं दोनों काम वे उसके बाद निम्न होगा करने के लिए मेरे अनुरोध मानचित्रण बदलें:
@RequestMapping(value = {"/users","/"})
हालांकि, अब यूआरएल /व्यवस्थापक/उपयोगकर्ता/उपयोगकर्ताओं भी काम करेंगे (जो मैं क्या चाहते हो जाएगा नहीं है)।
समस्या रूट पथ का उपयोग करने के साथ नहीं है। यदि मैं रूट पथ का उपयोग करता हूं तो मैं हमेशा '/ url-pattern> 'और' @RequestMapping (value = {"", "/"}) के साथ जाता हूं। मुझे इसके साथ कोई समस्या नहीं मिली है, और मैं टाइल्स 2 और स्प्रिंग एमवीसी 3 का उपयोग कर रहा हूं। समस्या पहले सर्वलेट पथ निर्दिष्ट करने के साथ है। जब भी आप सर्वलेट पथ की जानकारी निर्दिष्ट करते हैं, तब वसंत का अनुरोध मैपिंग उसके बाद सबकुछ है। तो तकनीकी रूप से, वही अनुरोध मैपिंग काम करना चाहिए क्योंकि यह सर्वलेट पथ की जड़ है। हालांकि, यह मामला प्रतीत नहीं होता है। –