2010-06-17 14 views
5

यहाँ मेरी MVC-config.xml का एक टुकड़ा है:स्प्रिंग 3.0 MVC MVC: दृश्य-नियंत्रक टैग

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

<mvc:view-controller path="/index" view-name="welcome"/>  
<mvc:view-controller path="/static/login" view-name="/static/login"/> 
<mvc:view-controller path="/login" view-name="/static/login"/> 

मैं welcome.jsp है/वेब-INF/देखें/निर्देशिका और login.jsp पर पर/वेब-INF/देखें/स्थिर /।

यह '/ अनुक्रमणिका' और '/ लॉगिन' पथों के लिए काम करता है। लेकिन ब्राउज़र से आने पर मुझे '/ static/login' के लिए 404 प्रतिक्रिया मिल रही है। मुझे उम्मीद है कि '/ static/login /' और '/ login' को वही व्यवहार करना चाहिए।

क्या गलत यहाँ हो सकता है?

किसी भी मदद की सराहना करेंगे।

धन्यवाद!

यहाँ web.xml है:

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value> 
    </context-param> 

    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <!-- Enables clean URLs with JSP views e.g. /welcome instead of /app/welcome --> 
    <filter> 
     <filter-name>UrlRewriteFilter</filter-name> 
     <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <filter-mapping> 
     <filter-name>UrlRewriteFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <!-- Handles all requests into the application --> 
    <servlet> 
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value> 
       /WEB-INF/spring/*.xml 
      </param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <!-- Maps all /app requests to the DispatcherServlet for handling --> 
    <servlet-mapping> 
     <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
     <url-pattern>/app/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

और यहाँ urlrewrite.xml है:

<urlrewrite default-match-type="wildcard"> 
    <rule> 
     <from>/</from> 
     <to>/app/welcome</to> 
    </rule> 
    <rule> 
     <from>/static/**</from> 
     <to last="true">/static/$1</to> 
    </rule> 

    <rule> 
     <from>/**</from> 
     <to last="true">/app/$1</to> 
    </rule> 
    <outbound-rule> 
     <from>/app/**</from> 
     <to>/$1</to> 
    </outbound-rule>  
</urlrewrite> 

पर्यावरण: मैं SpringSource टीसी सर्वर देव संस्करण v2.0 का उपयोग कर रहा
स्प्रिंग संस्करण: 3.0.3.RELEASE

उत्तर

6

अनुरोध आपके DispatcherServlet में नहीं मिल सकता है, क्योंकि यह पुनर्लेखन last = "true" साथ /static/$1 को /static/** से नियम से मेल खाता है, और इसलिए /** से /app/$1 लिए नियम है, जो DispatcherServlet की ओर जाता है से मेल नहीं खाता। अधिक जानकारी के लिए UrlRewriteFilter दस्तावेज़ देखें।

+0

मैंने उस हिस्से को अनदेखा किया। यह अब काम कर रहा है। धन्यवाद! – gouki

2

यह मेरे लिए ठीक काम कर रहा है, क्या आप मुझे बता सकते हैं कि आपका डिस्पैचर सर्वलेट मैपिंग क्या है? यह अच्छा होगा अगर आप पूरी वेब.एक्सएमएल सामग्री संलग्न कर सकते हैं। /static/login के लिए

+0

मैंने अपना प्रश्न वेब.एक्सएमएल सामग्री और urlrewrite.xml शामिल करने के लिए संपादित किया है। धन्यवाद! – gouki