如何在Spring MVC中创建基于控制器和操作方法的URL?

2022-09-04 20:59:43

我正在使用弹簧MVC 3.0

我有一个留言簿.jsp页面,我想在其中创建一个指向GuestBookController登录方法的链接。

这是一个简单的任务,大多数Web框架都可以处理这个问题(例如ggrails使用g:link标签来完成它),但我在官方的SpringMVC文档中找不到任何关于此的文档。

所以我挠挠头 - 这个功能在某个标签库中吗?框架是否公开了它?我是否必须扩展框架才能使其正常工作?

请注意,我不是在对URL进行硬编码(这是一个明显但较弱的解决方案),而是根据控制器和操作名称生成它。

更新:Spring MVC不提供此功能。不过有一张JIRA票。你可以在这里投票 https://jira.springsource.org/browse/SPR-5779


答案 1

简短的答案是否定的,您目前无法使用Spring MVC执行此操作。

这很可惜,因为你可以在其他框架中做到这一点,包括Grails(它在引擎盖下使用Spring MVC)。

请参阅此处的讨论,其中包括指向Spring功能请求的链接以添加此内容(投票支持它!


答案 2

Spring MVC在JSP中使用标准JSTL标签,因此:

<c:url value="/guestBook.html" var="guestBookLink" />
<a href="${guestBookLink}">Guest Book</a>

在控制器中:

@RequestMapping(value = "/guestBook")
public String handleGuestBook() { ... }