2010-07-10 111 views
0

我試圖將我的應用程序寫入Spring MVC 2.5以使用註釋式控制器。Spring MVC註釋相對路徑錯誤

顯然,我無法讓事情繼續下去。

我有如下的映射:

<li><a href="eqr/eqrItemList.htm"><span>Equipment Qual Report</span></a></li> 

創建我控制器象下面這樣:

@Controller 
@RequestMapping("/eqr") 
public class EQRMainController { 
private SimpleEQRTransManager eqrManager; 
protected final Log logger = LogFactory.getLog(getClass()); 

@RequestMapping(value = "/eqrItemList.htm") 
public String setupForm(
    @RequestParam(value = "plant", required = false) String plant, 
    return "eqrmain"; 
} 
} 

我想使用相對路徑所以設置我請求映射在類型水平。但顯然,我得到了一個404找不到,並沒有發現處理程序映射在tomcat控制檯的錯誤。

它說:

沒有找到映射與HTTP請求的URI [/myapp/eqr/eqrItemList.htm]

我看Firebug控制檯,並請求如下路徑:

http://localhost:8080/myapp/eqr/eqrItemList.htm 

我不知道它爲什麼找不到映射。

+0

嘗試@RequestMapping(value =「/ eqrItemList」)不帶擴展名。取決於你的視圖解析器,你可能不需要它。 – Daff 2010-07-10 08:41:51

回答

1

您確定您已經正確配置註解的上下文嗎?

在MVC的上下文配置(通常稱爲dispatcher-servlet.xml,根據不同的名稱,如果你的Servlet),你可以很簡單地使用這個元素配置MVC註解支持:

<mvc:annotation-driven />

這是告訴最簡單的方法Spring,您將使用MVC註釋。這裏有一個片段從我的項目之一,把它的來龍去脈:

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<!-- Import my service beans --> 
<import resource="application-context.xml" /> 

<mvc:annotation-driven /> 
<context:component-scan base-package="my.controllers.package.here" /> 

<!-- Other beans go here --> 

仔細;這是Spring 3,所以它可能不會完全適用於2.5。檢查參考文件(它相當徹底地解釋了這一點)。

0

檢查在web.xml中你的servlet映射:

 <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 

如果url-pattern的修復只有一些特殊的擴展(如*。做在這個例子中),那麼你的servlet將永遠不會得到這個請求。