Java 如何在SpringMVC中使用属性名为Spring@RequestMapping的注释

Java 如何在SpringMVC中使用属性名为Spring@RequestMapping的注释,java,django,spring,spring-boot,spring-mvc,Java,Django,Spring,Spring Boot,Spring Mvc,正如我在Django框架中所知,它提供了一种命名URL的方法,因此在视图方法和模板中很容易引用它们 例如: coffeehouse/url.py中的定义 路径,TemplateView.as_viewtemplate_name='homepage.html',name=homepage 视图中的定义方法 从django.http导入HttpResponsePermanentRedirect 从django.url反向导入 def方法请求: .... 返回HttpResponsePermanent

正如我在Django框架中所知,它提供了一种命名URL的方法,因此在视图方法和模板中很容易引用它们

例如:

coffeehouse/url.py中的定义 路径,TemplateView.as_viewtemplate_name='homepage.html',name=homepage 视图中的定义方法 从django.http导入HttpResponsePermanentRedirect 从django.url反向导入 def方法请求: .... 返回HttpResponsePermanentRedirectreverse'homepage' 模板中的定义 Spring@RequestMapping注释中的name属性是什么

Django框架中的URL名称是否相同


如何在Spring MVC中使用带有属性名的@RequestMapping注释?

要从处理程序方法的映射注释构建URL,请使用:

来自JSP:请参阅

从4.1开始,每个@RequestMapping都会根据类的大写字母和完整方法名分配一个默认名称。例如,类FooController中的方法getFoo被分配了名称FCgetFoo

[……]

SpringJSP标记库提供了一个名为mvcUrl的函数,可用于准备到基于此机制的控制器方法的链接

例如:

@RequestMapping/people/{id}/地址 公共类MyController{ @请求映射/{country} 公共HttpEntitygetAddress@PathVariable字符串国家{…} } 以下JSP代码可以准备一个链接:

... 来自特里梅莱夫:看

自版本4.1以来,Spring允许直接从视图构建到带注释控制器的链接,而无需知道这些控制器映射到的URI

在Thymeleaf中,这可以通过mvc.url。。。expression object方法,该方法允许使用控制器类的大写字母,后跟方法本身的名称来指定控制器方法。这相当于JSP的spring:mvcUrl。。。自定义函数

例如:

公共类示例控制器{ @请求映射/数据 公共字符串getDataModel模型{…返回模板} @请求映射/数据 公共字符串getDataParam@RequestParam字符串类型{…返回模板} } 以下代码将创建指向它的链接:

从另一个处理程序重定向:请参阅

从SpringMVC控制器方法的请求映射的名称创建URL

配置的HandlerMethodMappingNamingStrategy确定启动时控制器方法请求映射的名称。默认情况下,根据类名的大写字母为所有映射分配一个名称,后跟as分隔符,然后是方法名。例如,一个名为PersonController、方法为getPerson的类的PCgetPerson。如果命名约定不产生唯一的结果,则可以通过@RequestMapping注释的name属性指定显式名称

这主要用于视图渲染技术和EL表达式。SpringURL标记库将此方法注册为一个名为mvcUrl的函数

例如,给定此控制器:

@请求映射/人 类个人控制器{ @请求映射/{id} 公共HttpEntitygetPerson@PathVariable字符串id{…} } JSP可以按如下方式准备控制器方法的URL:

请注意,没有必要指定所有参数。只有准备URL所需的,主要是@RequestParam和@PathVariable

要使用它,您可以执行以下操作:

return "redirect:" + MvcUriComponentsBuilder.fromMappingName("PC#getPerson")
                                            .arg(0,"123")
                                            .build();

请参阅,前面注释中引用的第一个链接是针对Thymeleaf的,第二个链接是针对JSP的。在Django框架中,我可以使用reverse函数重定向到视图(如Spring中的控制器)中的URL。例如:斯宾格能做到吗?。谢谢@AndreasTo要从Spring处理程序中构建重定向URL,请使用,例如,该方法就是我之前评论中的链接所使用的方法。