链接(href)与Spring MVC中的应用程序无关?

Ror*_*ory 0 java spring web.xml spring-mvc

我正在更改一个项目,该项目在端口8080上使用简单的java HTTPServer到使用Spring MVC servlet框架的项目.

应用程序中有很多链接,如下所示:

<a href=\"/rule\">Manage rules</a><br/>
Run Code Online (Sandbox Code Playgroud)

使用以下请求可以正常工作:

http://localhost:8080/send
Run Code Online (Sandbox Code Playgroud)

但是,这些现在不起作用,除非我把servlet名称放在前面,如下所示:

"<a href=\"/ServletName/rule\">Manage rules</a><br/>"
Run Code Online (Sandbox Code Playgroud)

只是想知道有没有办法解决这个问题,或者仅仅是改变所有href链接以在它们面前添加servlet名称?

请注意,我不必在方法开头的@RequestMapping调用中添加servlet名称,它唯一的链接就是问题.例如,这可以正常工作,而无需在前面添加servlet名称

@RequestMapping(value = "/send", method = RequestMethod.GET)
Run Code Online (Sandbox Code Playgroud)

Sea*_*oyd 5

如果在视图层中使用JSP,请使用具有链接标记的标记库(或自己编写一个).基本上,链接标记必须通过执行来创建URL

HttpServletResponse.encodeURL(originalUrl)
Run Code Online (Sandbox Code Playgroud)

<c:url>JSTL中的标记可以做到这一点,但它只生成URL,而不是链接标记,但它可以像这样:

<c:url value="your/relative/url" var="somevar" />
<a href="${somevar}">Link Text</a>
Run Code Online (Sandbox Code Playgroud)