在Java MVC Controller上如何获取注释@RequestMapping(“/ getThisValueFromOtherClass”)的值?我知道我们可以通过使用java反射来提取它,但还有其他方法吗?谢谢。
@RequestMapping("/getThisString")
public class MyController{}
答案 0 :(得分:2)
如果目的只是为了避免在每个地方更改url,我建议在某个类中定义一个字符串常量,而不是在请求映射中使用硬编码字符串,在每个地方使用该常量。 将来如果你想要改变网址,只需在一个地方更新常数值
final String constUrl =“/ myurl”;
@RequestMapping(值= constUrl)
如果在另一个类中定义
,你可以使常量变为静态答案 1 :(得分:2)
可以通过编程方式读取注释的值:
@RequestMapping("/endpoints")
public ResponseEntity<String> getPath() {
String path = getClass().getAnnotation(RequestMapping.class).value()[0];
return new ResponseEntity<String>(path, HttpStatus.OK);
}
答案 2 :(得分:1)
要获取路径,您应该将Request即HttpServletRequest作为参数传递给处理程序方法。
@RequestMapping(value={"/getThisString"}, method=RequestMethod.GET)
public String handlerMethod (Model model, HttpServletRequest request) throws Exception {
String getThatString = request.getServletPath();
....
}
参考:
答案 3 :(得分:0)
在您的情况下,如果请求了URI模式“/getThisString”
,它将映射到此MyController
,并使用声明@RequestMapping(method = RequestMethod.GET)
的方法处理请求。
您可以参考本教程@RequestMapping example
希望它有所帮助。