2016-07-08 143 views
1

定義多路徑方法在控制器中的Spring MVC確定多路由控制器方法

@RequestMapping(value={"/path", "/path2"}, method = RequestMethod.GET) 
public String MyMethod() { 
    // Determine which route invoked the method 
    return null; 
} 

有沒有一種方法來確定哪些路徑調用的方法途徑?

感謝您的善意幫助。

回答

2

你可以使用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",...),因此您可能需要先使用它進行驗證。

+0

10倍我應該弄明白。使用路徑變量將會非常簡單和容易 – kidwon

2

我相信你可以使用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; 
} 
+0

10倍,有幫助 – kidwon