2010-05-04 14 views
6

हम स्प्रिंग-एमवीसी में एक जेएसपी-केवल एप्लिकेशन माइग्रेट करने की प्रक्रिया में हैं। विभिन्न कारणों से हम वर्तमान पृष्ठों का विस्तार नहीं बदल सकते हैं। (login.jsp को कॉल करने के लिए एक वसंत नियंत्रक द्वारा संभालने की आवश्यकता है जो एक जेएसपी फ़ाइल को देखने के रूप में उपयोग करेगा)।मैं .jsp एक्सटेंशन के साथ एक यूआरएल में वसंत नियंत्रक को कैसे मैप कर सकता हूं?

हम इसे सामान्य रूप से कर रहे हैं, इसलिए कुछ पृष्ठों को jsp फ़ाइलों को रहने की आवश्यकता है (स्वागत करने के लिए कॉल .jsp नियंत्रक द्वारा संभाला नहीं जाएगा)।

ऐसा करने के लिए मैंने डिस्पैचर डर्लेट और हैंडलर मैपिंग को * .jsp पर मैप किया, और मानक तरीके से JstlView को कॉन्फ़िगर किया।

दुर्भाग्य से, अगर मैं //login.jsp ब्राउज़ मैं

<No mapping found for HTTP request with URI [/<context>/WEB-INF/jsp/login.jsp] in DispatcherServlet with name 'spring'> 

यह सब काम करता है कह रही है कि अगर मैं DispatcherServlet और HandlerMapping में किसी भी अन्य विस्तार करने के लिए .jsp बदलने में त्रुटि मिली।

web.xml:

<servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
</servlet-mapping> 

वसंत-servlet.xml:

<!-- View resolver --> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

<!-- URL Mapping --> 
<bean id="publicUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="urlMap"> 
     <map> 
      <entry key="/login.jsp" value-ref="loginController"/> 
     </map> 
    </property> 
</bean> 

धन्यवाद एक बहुत।

अद्यतन: मैंने अभी सत्यापित किया है कि अगर मैं अपनी .jsp फ़ाइलों को किसी अन्य चीज़ (.jst) का नाम बदलता हूं और इसके अनुसार दृश्य को अद्यतन करता हूं, तदनुसार सभी काम करता है। स्पष्ट रूप से अगर दृश्य को .jsp के साथ फ़ाइल में हल किया गया है, तो वसंत दृश्य को किसी अन्य नियंत्रक को अग्रेषित करने का प्रयास करता है।

उत्तर

2

यदि यह वास्तव में .jsp एक्सटेंशन के साथ काम नहीं कर रहा है (हालांकि मैं इसके लिए कोई कारण नहीं देख सकता), तो आप पहले यूआरएल के पुनर्लेखन के लिए http://tuckey.org/urlrewrite/ का उपयोग करने का प्रयास कर सकते हैं।

3

यह मेरे लिए काम किया [टूक से http://forum.springsource.org/showthread.php?13263-Using-.jsp-extension चोरी]। अपने web.xml फ़ाइल को यह जोड़ने का प्रयास करें:

<servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>/WEB-INF/jsp/*</url-pattern> 
</servlet-mapping> 

कृपया ध्यान दें कि यहां तक ​​कि कड़ी में जानकारी के साथ मुझे समझ नहीं आता क्यों यह मदद कर रहा है है। अगर कुछ वसंत विशेषज्ञ इसे छोड़कर समझा सकते हैं, तो मुझे जानना अच्छा लगेगा।

मैं यह भी गारंटी नहीं दे सकता कि कोई संभावित सुरक्षा/विश्वसनीयता समस्याएं पैदा नहीं हो सकती हैं, इसलिए अपने जोखिम पर उपयोग करें।

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

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