抱歉,如果您发现这个问题很愚蠢...我是Spring框架的新手。我花了几个小时寻找答案...
根据官方Spring Framework文档,您可以使用RequestMapping
属性为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组件或服务?还有哪些其他可能的用例?
来自文档:
@RequestMapping
批注的名称属性可用于为控制器类和方法的映射分配名称。