我在控制器中有以下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问题?
答案 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>