Spring Controller URL Mapping问题

时间:2012-02-01 02:45:15

标签: spring spring-mvc

我在控制器中有以下URL映射

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

我点击了href="additem.htm"的页面,然后转到上面有value="/additem.htm"的控制器。我填写表格并提交表格。

表单会发布到action="additem/fileupload.htm",并通过value="/additem/fileupload.htm"转到控制器。完成此文件上载控制器并返回jsp后,浏览器URL将变为"http://localhost:8080/Dream/additem/fileupload.htm"

问题是,当我再次点击href="additem.htm"的第一个链接时,它正在尝试搜索类似"additem/additem.htm"的映射的控制器。

即使我将鼠标悬停在链接上,浏览器也会将网址显示为http://localhost:8080/Dream/additem/additem.htm,并且会引发错误。如何解决此URL问题?

1 个答案:

答案 0 :(得分: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>