2012-02-01 239 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