首页 > 解决方案 > 在控制器级别使用 @RequestMapping 和动态 URL

问题描述

我一直在通过 Stack Overflow 和 Google 进行大量研究,我发现最接近的是类似这篇文章的内容,但它仍然没有回答我的问题。@RequestMapping 的文档没有说明在控制器级别使用动态 URL 的可能性,所以我想知道下面的代码是否可行:

@RequestMapping("/something/{somethingsId}")
public class ExampleController{
    //Some methods mapping to some endpoints that start with /something/{somethingsId}
    @GetMapping("/getOtherThing")
    public ResponseEntity<> getOtherThing(@PathVariable("somethingsId")String somethingsId){
        //Do something with somethingsId
    }
}

这只是我打算实现的示例代码。我想这样做是为了将一些功能分离到不同的控制器中,这些控制器需要这个 somethingId 才能工作,但我不知道我想要的是否可行,或者我是否必须满足于在每种方法中重复相同的事情控制器获取“somethingsId”路径变量。

预先感谢您的回答。

标签: javaspringcontrollerdynamic-url

解决方案


是的,你可以实现它,按照我提到的相同方式

@Controller
@RequestMapping("/owners/{ownerId}")
public class Test {

    @RequestMapping("/pets/{petId}")
    public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {
        System.out.println("ownerId "+ownerId+" petId "+petId);
    }
}

推荐阅读