2010-02-04 139 views
0

我想如下映射一對夫婦的URL各自的控制器:我的Url映射有什麼問題?

/index.html => HomeController 
/login/index.html = LoginController 

我在我的servlet XML映射豆看起來是這樣的:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
     <map> 
      <entry key="/index.html"> 
       <ref bean="homeController" /> 
      </entry> 
      <entry key="/login/index.html"> 
       <ref bean="loginController" /> 
      </entry> 
     </map> 
    </property> 
</bean> 

我已經正確定義裁判豆homeControllerloginController

我可以正確加載主頁,但是當我嘗試導航到/login而不是顯示loginController指向的jsp時,我得到了tomcat請求的資源不可用錯誤。我的語法在這裏有什麼問題嗎?由於

繼承人我的web.xml的一部分:

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

<servlet-mapping> 
    <servlet-name>myServlet</servlet-name> 
    <url-pattern>/index.html</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 

回答

1

你的URL映射爲/login/index.html,而你導航到/login

您的URL映射必須與URL匹配。將映射更改爲/login

編輯:OK,你web.xmlurl-pattern只抓住索引頁,所以它永遠不會發送的/login請求春天。您需要將模式擴展爲<url-pattern>/*</url-pattern>(它將向Spring發送每個請求),或者添加多個模式以覆蓋您希望Spring處理的每個URL。

另外你的welcome-file-list有點過分。你真的需要這些嗎?

+0

這沒有做到。我是否需要在web.xml中更改我的servlet映射? – oym 2010-02-04 00:30:46

+0

可能。你的'web.xml'裏有什麼? – skaffman 2010-02-04 00:31:08

+0

我用web.xml更新了這個問題 – oym 2010-02-04 00:33:07