2012-02-01 278 views
0

我在控制器春季控制器URL映射問題

@RequestMapping(value = "/additem.htm", method = RequestMethod.GET) 
@RequestMapping(value = "/additem/fileupload.htm", method = RequestMethod.POST) 

以下URL映射我點擊頁面與href="additem.htm"和它關係到控制器上面value="/additem.htm"。我填寫表格並提交表格。

表格發佈到action="additem/fileupload.htm",該表格發送到控制器value="/additem/fileupload.htm"。一旦我完成這個文件上傳控制器,並返回一個jsp的瀏覽器網址轉到"http://localhost:8080/Dream/additem/fileupload.htm"

問題是,當我再次點擊與href="additem.htm"的第一個鏈接時,它正在嘗試搜索像"additem/additem.htm"這樣的映射的控制器。

即使我將鼠標懸停在鏈接上,瀏覽器顯示的網址爲http://localhost:8080/Dream/additem/additem.htm,並且會引發錯誤。我如何解決這個URL的問題?

回答

3

當你定義在JSP的鏈接,使用C:url標記生成相對於應用的上下文路徑的URL:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<a href="<c:url value="/additem.htm" />">Click here</a> 

它會預先考慮到在href應用程序的上下文路徑。它應該生成:

<a href="/Dream/additem.htm">Click here</a> 
+0

並記下c:url值的前導斜槓。沒有這一點,這將是相對的,你會最終得到你現在擁有的。 – digitaljoel 2012-02-01 06:39:11

+0

哇,我真的很喜歡這個解決方案。像魅力一樣工作 – 2012-02-02 01:41:05