如何在 Spring MVC 中创建基于控制器和操作方法的 URL?
我正在使用 Spring MVC 3.0
我有一个 guestbook.jsp 页面,我想在其中创建一个指向 GuestBookController 的登录方法的链接。
这是一个简单的任务,大多数 Web 框架都会处理这个任务(例如 grails 使用 g:link 标签来完成),但我在官方 SpringMVC 文档中找不到任何关于此的文档。
所以我很困惑 - 这个功能在某些标签库中吗?框架是否公开它?我是否必须扩展框架才能使其正常工作?
请注意,我不会对 url 进行硬编码(这是一个明显但较弱的解决方案),而是根据控制器和操作名称生成它。
更新: Spring MVC 不提供此功能。不过有一张 JIRA 票。您可以在这里投票 https://jira.springsource.org/browse/SPR-5779
I am using Spring MVC 3.0
I have a guestbook.jsp page where I want to create a link that points to GuestBookController's login method.
This is a simple task that most web frameworks handle this (e.g grails does it with g:link tag) but I couldn't find any documentation on this in the official SpringMVC docs.
So I am scratching my head - Is this functionality in some tag library? Does the framework expose it? Do I have to extend the framework to get this to work?
Note, I am not taking about hardcoding the url (which is an obvious but weak solution) but rather generating it based on controller and action name.
UPDATE:
Spring MVC doesn't provide this functionality. There is a JIRA ticket though. You can vote here https://jira.springsource.org/browse/SPR-5779
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
简短的回答是否定的,目前您无法使用 Spring MVC 来做到这一点。
遗憾的是,您可以在其他框架中执行此操作,包括 Grails(它在底层使用 Spring MVC)。
请参阅此处的讨论 其中包含一个指向 Spring 功能请求的链接,以添加此功能(投票!)
The short answer is no, you can't do this with Spring MVC currently.
It's a shame because you can do this in other frameworks including Grails (which uses Spring MVC under the hood).
See the discussion here which includes a link to a Spring feature request to add this (vote for it!)
Spring MVC 在 JSP 中使用标准 JSTL 标记,因此:
在您的控制器中:
Spring MVC uses the standard JSTL tags in JSPs so:
In your controller:
Spring HATEOS 库 提供了一个 API 来生成 MVC 控制器的链接方法多种多样。
例如:
The Spring HATEOS library provides an API to generate links to MVC controller methods in various ways.
For example:
使用 @RequestMapping 注释您的登录方法,如下所示:
然后,在您的 JSP 中,创建一个类似如下的链接:
这假定您的调度程序 servlet 正在查找 *.html URL。
Annotate your login method with @RequestMapping, like so:
Then, in your JSP, create a link something like this:
This assumes that your dispatcher servlet is looking for *.html URLs.