Spring Controller URL映射问题
问题内容:
我在控制器中有以下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后,浏览器的网址将变为"http://localhost:8080/Dream/additem/fileupload.htm"
。
问题是,当我再次单击的第一个链接时href="additem.htm"
,它正在尝试搜索具有映射的控制器"additem/additem.htm"
。
即使当我将鼠标悬停在链接上时,浏览器也将URL显示为http://localhost:8080/Dream/additem/additem.htm
,并引发错误。我该如何解决此URL问题?
问题答案:
在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>