2013-05-05 29 views
2

我的應用程序使用Spring MVC(latest; 3.2.2)創建一個返回JSON的RESTful API,到目前爲止,我根本不需要視圖層。但現在,除了API之外,我還需要一個簡單的實用程序頁面(簡單的動態HTML),並且希望爲此使用JSP。如何獲得Spring MVC視圖(JSP)解決工作的一個微不足道的情況?

我想請求http://localhost:8080/foo/<id>通過控制器(Java)並最終在JSP中。應該很簡單吧?但我得到404;有些東西在解決這個問題上是不對的。

HTTP ERROR 404 
Problem accessing /jsp/foo.jsp. Reason: 

    Not Found 

控制器

@RequestMapping(value = "/foo/{id}") 
public String testing(@PathVariable String id, ModelMap model) { 
    model.addAttribute("id", id); 
    return "foo"; 
} 

定義控制器和請求映射的工作原理;這個方法被調用得很好。

Spring配置

<mvc:annotation-driven/> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
      p:prefix="/jsp/" p:suffix=".jsp"/> 

這個問題可能是在這裏。我已經嘗試了稍微不同的前綴,並將JSP放在WEB-INF之下,還有像<mvc:view-controller path="/*" />這樣的東西,但是還沒有運氣。

(難道我甚至需要指定的InternalResourceViewResolver,或者應該默認視圖解析器照顧這?)

JSP文件。在src/main/webapp/jsp(該項目使用Maven約定)下,我顯然擁有JSP。

有什麼不對的位置?

web.xml中

<servlet> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

我已經通過Spring MVC documentation瀏覽,但我的問題可能是過於瑣碎和明顯很容易地找到幫助那裏。 :-P

任何人都可以啓發我,我做錯了什麼?

回答

6

我認爲你需要做的是改變

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

/*如果有另一個文件夾的路徑,像/jsp/foo.jsp數據不符。另一方面/將匹配一切。

相關問題