2012-03-14 18 views
0

this post看到了,我可以用下面的例子來定義一個默認控制器/頁使用@RequestMapping作爲默認歡迎文件

@RequestMapping(value={"/content/edit", "/"}, method=RequestMethod.GET) 

遺憾的是它不工作。當我打開我的應用程序它顯示了一個404錯誤,除非我找/content/edit.htm

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" 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_3_0.xsd"> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <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/app-config.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Spring-MVC-Dispatcher-Servlet</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 
</web-app> 

回答

0

你的servlet被映射到 「的* .htm」。 「/」不匹配那個模式,所以你的servlet和你的控制器沒有機會被調用。我認爲你可以在web.xml中指定歡迎文件(這就是/什麼),但我必須查看它是如何的。

0

您的問題本在於「/content/edit.htm」不映射

@RequestMapping(值= { 「/內容/編輯」, 「/」}, 方法= RequestMethod.GET)。

需要

@RequestMapping(值= { 「/內容/ edit.htm」, 「/」}, 方法= RequestMethod.GET)。

@RequestMapping(值= { 「/內容/編輯。*」, 「/」}, 方法= RequestMethod.GET)。

您可以選擇最後一個選項,因爲您將web.xml過濾爲*。 htm