从 parent 的 @RequestMapping 访问 @PathVariables
Access @PathVariables from parent's @RequestMapping
我正在尝试访问“MyClass”的@RequestMapping parent 中定义的@PathVariables。
简化场景:
@RestController
@RequestMapping(value = "some/path/{with}/{multiple}/{variables}")
public class ParentClass {...}
此 class 是某种产品的基础 class,不应编辑。因此我要扩展 'ParentClass'。在 'MyClass' 我想做这样的事情:
@GetMapping("/{another}")
public Object get(@PathVariable("another") String another) {...}
我认为这是允许的(尚未测试),但我不明白我将如何获得已使用 'ParentClass'.
定义的所有 PathVariables
非常感谢任何想法/RTFM 参考。
是的,这是可能的
@RestController
@RequestMapping("/a/{a}/b/{b}")
class Parent{
}
@RestController
class Child extends Parent{
// take over pathvariables from parent
@GetMapping("/c/{c}")
public String abc(@PathVariable String a,@PathVariable String b, @PathVariable String c) {
return a+b+c;
}
// ignore pathvariables from parent
@GetMapping("/d/{d}")
public String d(@PathVariable String d){
return d;
}
}
刚刚接手@Pathvaribles
的Parent-class
然后像 http://localhost:8080/a/x/b/y/c/z 这样的请求
将 return "xyz"
还有像 http://localhost:8080/a/ignore-a/b/ignore-b/d/capure-d 这样的请求
将 return “capure-d”
我正在尝试访问“MyClass”的@RequestMapping parent 中定义的@PathVariables。 简化场景:
@RestController
@RequestMapping(value = "some/path/{with}/{multiple}/{variables}")
public class ParentClass {...}
此 class 是某种产品的基础 class,不应编辑。因此我要扩展 'ParentClass'。在 'MyClass' 我想做这样的事情:
@GetMapping("/{another}")
public Object get(@PathVariable("another") String another) {...}
我认为这是允许的(尚未测试),但我不明白我将如何获得已使用 'ParentClass'.
定义的所有 PathVariables非常感谢任何想法/RTFM 参考。
是的,这是可能的
@RestController
@RequestMapping("/a/{a}/b/{b}")
class Parent{
}
@RestController
class Child extends Parent{
// take over pathvariables from parent
@GetMapping("/c/{c}")
public String abc(@PathVariable String a,@PathVariable String b, @PathVariable String c) {
return a+b+c;
}
// ignore pathvariables from parent
@GetMapping("/d/{d}")
public String d(@PathVariable String d){
return d;
}
}
刚刚接手@Pathvaribles
的Parent-class
然后像 http://localhost:8080/a/x/b/y/c/z 这样的请求 将 return "xyz"
还有像 http://localhost:8080/a/ignore-a/b/ignore-b/d/capure-d 这样的请求 将 return “capure-d”