【问题标题】:Access @PathVariables from parent's @RequestMapping从父级的@RequestMapping 访问@PathVariables
【发布时间】:2022-01-05 13:53:17
【问题描述】:

我正在尝试访问“MyClass”的@RequestMapping 父级中定义的@PathVariables。 简化脚本:

@RestController
@RequestMapping(value = "some/path/{with}/{multiple}/{variables}")
public class ParentClass {...}

此类是产品的基类,不应编辑。因此,我正在扩展“ParentClass”。在“MyClass”中,我想做这样的事情:

@GetMapping("/{another}")
public Object get(@PathVariable("another") String another) {...}

我认为这是允许的(尚未测试),但我不知道如何获得已使用“ParentClass”定义的所有 PathVariables。

非常感谢任何想法/ RTFM 参考。

【问题讨论】:

    标签: java spring inheritance spring-restcontroller request-mapping


    【解决方案1】:

    是的,这是可能的

    @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;
     }
    
    }
    
    

    只要接管Parent-class的@Pathvaribles

    然后像 http://localhost:8080/a/x/b/y/c/z 这样的请求 将返回“xyz”

    还有像 http://localhost:8080/a/ignore-a/b/ignore-b/d/capure-d 这样的请求 将返回“capure-d”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 2014-07-13
      • 2021-11-05
      相关资源
      最近更新 更多