[英]How can I instantiate a specific sub-type for a @RequestBody parameter based on the requested URI for a Spring MVC controller method?
[英]How can I create a URL based on controller and action method in Spring MVC?
我正在使用Spring MVC 3.0
我有一個guestbook.jsp頁面,我想創建一個指向GuestBookController的登錄方法的鏈接。
這是一個簡單的任務,大多數Web框架都可以處理這個問題(例如Grails用g:link標簽完成)但我在官方的SpringMVC文檔中找不到任何關於此的文檔。
所以我在摸不着頭腦 - 這個功能在某些標簽庫中嗎? 框架是否暴露了它? 我是否必須擴展框架才能使其工作?
注意,我沒有采取硬編碼url(這是一個明顯但很弱的解決方案),而是基於控制器和動作名稱生成它。
更新 :Spring MVC不提供此功能。 雖然有一張JIRA票。 你可以在這里投票https://jira.springsource.org/browse/SPR-5779
Spring MVC在JSP中使用標准的JSTL標記,因此:
<c:url value="/guestBook.html" var="guestBookLink" />
<a href="${guestBookLink}">Guest Book</a>
在你的控制器中:
@RequestMapping(value = "/guestBook")
public String handleGuestBook() { ... }
很長一段時間以來,我一直在考慮使用CGLib代理實現類似的東西,但是太懶了。 看來, Spring HATEOS庫將允許您以我所知的代理方式和其他各種方式來實現。
使用@RequestMapping注釋您的登錄方法,如下所示:
@Controller
public class GuestBookController {
...
@RequestMapping(value="/mycontextroot/login", method = RequestMethod.GET)
public String login() {
...
}
...
}
然后,在JSP中,創建如下鏈接:
<c:url var="loginlink" value="/mycontextroot/login.html">
</c:url>
<a href="${loginlink}">Login</a>
這假設您的調度程序servlet正在查找* .html URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.