Spring框架中`RequesetMapping`注释的`name`属性的用例是什么?

问题描述 投票:0回答:2

抱歉,如果您发现这个问题很愚蠢...我是Spring框架的新手。我花了几个小时寻找答案...

根据官方Spring Framework文档,您可以使用RequestMapping属性为name批注分配名称。

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html#name--

所以问题是给路由映射命名的意义是什么?

在Symfony框架中,我们可以使用映射名称来生成URL。

class BlogController
{
    /**
     * @Route(name="BlogComments", path="blog/{blog}/comments/{page}")
     */
    public function listBlogComments(Blog blog, page)
    {
        ...
    }
}

然后我们可以根据路线名称生成一个URL。

// This will generate a string "blog/27/comments/1".
$url = $this->generateUrl('BlogComments', [
    'blog' => 27,
    'page' => 1
]);

由于Symfony\Component\Routing\Router组件,这才有可能。

控制器类可以在Spring框架中如下编写。

@Controller
@ResponseBody
class BlogController {

    @RequestMapping(name="BlogComments", path="blog/{blog}/comments/{page}")
    public List<Comment> listBlogComments(@PathVariable Blog blog, @PathVariable Long page) {
        ...
    }
}

现在如何在这种情况下基于映射名称"BlogComments"生成URL? Symfony框架中是否有可用的Spring组件或服务?还有哪些其他可能的用例?

java spring symfony routing
2个回答
0
投票

来自文档:


0
投票

@RequestMapping批注的名称属性可用于为控制器类和方法的映射分配名称。

© www.soinside.com 2019 - 2024. All rights reserved.