我正在使用端口8080上的简单java HTTPServer更改使用Spring MVC servlet框架的项目。
应用程序中有很多链接如下:
<a href=\"/rule\">Manage rules</a><br/>
使用以下请求正常工作:
http://localhost:8080/send
但是,除非我把servlet名称放在前面,否则现在这些都不起作用了:
"<a href=\"/ServletName/rule\">Manage rules</a><br/>"
只是想知道有没有办法解决这个问题,或者仅仅是改变所有href链接以在它们前面添加servlet名称?
请注意,我不必在方法开头的@RequestMapping调用中添加servlet名称,它唯一的链接就是问题。例如。这可以正常工作,而无需在前面添加servlet名称
@RequestMapping(value = "/send", method = RequestMethod.GET)
答案 0 :(得分:5)
如果在视图层中使用JSP,请使用具有链接标记的标记库(或自己编写一个)。基本上,链接标记必须通过执行
来创建URLHttpServletResponse.encodeURL(originalUrl)
JSTL中的<c:url>
标记可以做到这一点,但它只会生成网址,而不会生成链接标记,但是它可以让你像这样:
<c:url value="your/relative/url" var="somevar" />
<a href="${somevar}">Link Text</a>