在Java Controller上如何获取注释@RequestMapping(“/ getThisValueFromOtherClass”)的值?

时间:2013-11-09 13:24:12

标签: java spring spring-mvc

在Java MVC Controller上如何获取注释@RequestMapping(“/ getThisValueFromOtherClass”)的值?我知道我们可以通过使用java反射来提取它,但还有其他方法吗?谢谢。

@RequestMapping("/getThisString")
public class MyController{}

4 个答案:

答案 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

希望它有所帮助。