定義多路徑方法在控制器中的Spring MVC確定多路由控制器方法
@RequestMapping(value={"/path", "/path2"}, method = RequestMethod.GET)
public String MyMethod() {
// Determine which route invoked the method
return null;
}
有沒有一種方法來確定哪些路徑調用的方法途徑?
感謝您的善意幫助。
定義多路徑方法在控制器中的Spring MVC確定多路由控制器方法
@RequestMapping(value={"/path", "/path2"}, method = RequestMethod.GET)
public String MyMethod() {
// Determine which route invoked the method
return null;
}
有沒有一種方法來確定哪些路徑調用的方法途徑?
感謝您的善意幫助。
你可以使用HttpServletRequest
其中有一個叫getRequestURL()
檢索實際的URL,讓您解析使用了哪個路徑的方法。
然而,另一種可能性是使用路徑變量來代替:
@RequestMapping(value = "/{path}", method = RequestMethod.GET)
public String myMethod(@PathVariable String path) {
// Do stuff with "path"
return null;
}
在這種情況下,path
變量將包含任何你輸入配對在@RequestMapping
給出的路徑,你的情況這將是"path"
或"path2"
。但是,這也會允許其他路徑變量(例如,"path3"
,...),因此您可能需要先使用它進行驗證。
我相信你可以使用HttpServletRequest的:
@RequestMapping(value={"/path.html", "/path2.html"}, method = RequestMethod.GET)
public String MyMethod (HttpServletRequest request) {
// Determine which route invoked the method
String url = new String(request.getRequestURL());
log.debug("URL: " + url); //use whatever you use to log
return null;
}
10倍,有幫助 – kidwon
10倍我應該弄明白。使用路徑變量將會非常簡單和容易 – kidwon