在Java的MVC控制器如何得到註解@RequestMapping( 「/ getThisValueFromOtherClass」)的價值?我知道我們可以通過使用java反射來提取這個,但是還有其他方法嗎?謝謝。在Java控制器上如何獲得註解@RequestMapping(「/ getThisValueFromOtherClass」)的值?
@RequestMapping("/getThisString")
public class MyController{}
在Java的MVC控制器如何得到註解@RequestMapping( 「/ getThisValueFromOtherClass」)的價值?我知道我們可以通過使用java反射來提取這個,但是還有其他方法嗎?謝謝。在Java控制器上如何獲得註解@RequestMapping(「/ getThisValueFromOtherClass」)的值?
@RequestMapping("/getThisString")
public class MyController{}
如果目的只是爲了避免在每一個地方改變URL,我會建議定義一個字符串中的一些類常量,而不是在請求映射使用硬編碼字符串,並使用恆定的每一個地方。 未來,如果你想tp \ o改變網址,簡單地更新一個地方的常數值
final String constUrl =「/ myurl」;
@RequestMapping(值= constUrl)
可以使恆靜,如果定義在另一個類
是的,即時通訊做方法請求映射的這種方法,但我想從超類中提取此值,所以它將可用於擴展該類的所有控制器。 –
我會推薦同樣的方法用於類級別請求映射。如果你想要不斷限制,你可以保護它。 – coder
我想我只能堅持這種方法。多謝你們! –
要獲取路徑,您應該將請求即HttpServletRequest作爲參數傳遞給您的處理程序方法。
@RequestMapping(value={"/getThisString"}, method=RequestMethod.GET)
public String handlerMethod (Model model, HttpServletRequest request) throws Exception {
String getThatString = request.getServletPath();
....
}
參考:
* @ RequestMapping僅適用於方法而不適用於類*這是不正確的,這個註解也適用於類。引用文檔:*註釋映射Web請求到具體的處理類和/或處理方法* –
第一行Java文檔的... RequestMapping映射Web請求到具體的處理類和/或處理方法詮釋。 – Ashish
更正已完成。 :) – user2339071
在你的情況下,如果一個URI模式「/getThisString」
被請求時,它會映射到這個MyController
,並在@RequestMapping(method = RequestMethod.GET)
聲明處理與方法的要求。
您可以參考本教程@RequestMapping example
希望它能幫助。
註解的值可以通過編程閱讀:
@RequestMapping("/endpoints")
public ResponseEntity<String> getPath() {
String path = getClass().getAnnotation(RequestMapping.class).value()[0];
return new ResponseEntity<String>(path, HttpStatus.OK);
}
剛需清楚,你想從其他類中獲取控制器A中定義的@ReqestMapping annotstion的值屬性?我也可以知道用例是什麼? – coder
@coder - 我想獲得註釋的價值,目的,如果追蹤的網址的變化,例如IM引用其他類此網址,而不是編輯它在所有的地方我只想得到的值像這樣映射MyController.getBaseMapping()。我知道我們可以通過java反射來獲取它,但有其他方法嗎? –