首页 > 编程知识 正文

apioperation注解(requestparam参数绑定)

时间:2023-05-03 07:56:02 阅读:89405 作者:1635

spring 2.5版添加了Spring MVC注释功能,以替换传统的基于XML的Spring MVC配置。

创建两个传统控制器,它们是实现控制器接口的类。 传统型式的控制器不仅需要在配置文件中引入映射,而且只能描述一种处理方法,不具有灵活性。

使用基于注释的控制器有以下两个优点。

基于注释的控制器类可以描述多个处理方法,还可以处理多个请求(操作),因此可以将相关操作写入同一控制器类,从而减少控制器类的数量,方便日后维护。

基于注释的控制器不需要在配置文件中放置映射,只需要@RequestMapping注释的一种方法来处理请求。

下面介绍Spring MVC中最重要的两种注释类型。 @Controller和@RequestMapping

  Controller注解

@Controller注释用于声明类的实例为控制器。 例如,在net.biancheng.controller包中创建控制器类IndexController。 示例代码如下:

包net.biancheng .控制器;

importorg.spring框架. stereotype .控制器;

@Controller

公共类索引控制器

//如何处理请求

}123456代码类型的副本: [java]Spring MVC使用扫描机制检测APP中基于注释的所有控制器类,因此控制器类将在Spring MVC框架中进行扫描(请确保所有控制器类都位于基本包及其子包下。)

  RequestMapping注解

在一个控制器内有处理多个请求的方法。 例如,用户控制器通常包括添加用户、修改用户信息、删除指定用户、基于条件获取用户列表等。 每个方法负责不同的请求操作,@RequestMapping负责将请求映射到相应的控制器方法。

基于注释的控制器类允许您编写每个请求的处理方法。 使用@RequestMapping注释使请求与处理方法相对应即可。

@RequestMapping注释可以在类或方法中使用。 在类中使用,表示响应类中所有请求的方法将该地址作为父路径。

@RequestMapping注释的一般属性如下:

1 .值属性

由于value属性是@RequestMapping注释的默认属性,因此如果只有value属性,则必须省略该属性的名称,如果有其他属性,则必须写入value属性名称。 如下所示。

@ request mapping (值=' touser ' () ) () ) ) ) ) ) ) ) ) ) ) )余) ) ) ) ) )但) ) ) ) ) ) ) ) ) ) ) ) )但) ) ) ) ) ) )而652

@requestmapping('touser”) 12代码类型的副本: [java]value属性支持通配符匹配。 例如,@requestmapping )值=' touser/* ' )表示3358本地主机33666 )

2 .路径属性

path和value属性都用作映射。 也就是说,@requestmapping(value='toUser ) )和@ request mapping (path=' touser ) ) )都可以访问touser ) )方法。

path属性支持通配符匹配。 例如,@ request mapping (路径=' touser/* '表示http://本地主机33608080 /本地主机/1或http://本地主机33608080 /本地主机)

3 .名称属性

name属性相当于方法的注释,使方法更容易理解。 正如@requestmapping(value='touser ',name='获取用户信息')一样。

4 .方法属性

method属性表示方法支持的HTTP请求。 如果省略method属性,则方法支持所有HTTP请求。

@requestmapping(value='touser ',method=RequestMethod.GET )表示此方法只支持GET请求。 也可以指定多个HTTP请求,如@requestmapping(value='touser ',method={RequestMethod.GET,RequestMethod.POST} ),该方法是GET

5 .参数属性

params属性用于指定请求中规定的参数,代码如下:

@请求映射(val

ue = "toUser",params = "type") public String toUser() { return "showUser"; }12345复制代码类型:[java]

  以上代码表示请求中必须包含 type 参数时才能执行该请求。即 http://localhost:8080/toUser?type=xxx 能够正常访问 toUser() 方法,而 http://localhost:8080/toUser 则不能正常访问 toUser() 方法。

@RequestMapping(value = "toUser",params = "type=1") public String toUser() { return "showUser"; }12345复制代码类型:[python]

  以上代码表示请求中必须包含 type 参数,且 type 参数为 1 时才能够执行该请求。即 http://localhost:8080/toUser?type=1 能够正常访问 toUser() 方法,而 http://localhost:8080/toUser?type=2 则不能正常访问 toUser() 方法。

  6. header属性

  header 属性表示请求中必须包含某些指定的 header 值。

  @RequestMapping(value = "toUser",headers = "Referer=http://www.xxx.com") 表示请求的 header 中必须包含了指定的“Referer”请求头,以及值为“http://www.xxx.com”时,才能执行该请求。

  7. consumers属性

  consumers 属性用于指定处理请求的提交内容类型(Content-Type),例如:application/json、text/html。如

  @RequestMapping(value = "toUser",consumes = "application/json")。

  8. produces属性

  produces 属性用于指定返回的内容类型,返回的内容类型必须是 request 请求头(Accept)中所包含的类型。如 @RequestMapping(value = "toUser",produces = "application/json")。

  除此之外,produces 属性还可以指定返回值的编码。如 @RequestMapping(value = "toUser",produces = "application/json,charset=utf-8"),表示返回 utf-8 编码。

  使用 @RequestMapping 来完成映射,具体包括 4 个方面的信息项:请求 URL、请求参数、请求方法和请求头。

开课吧广场-人才学习交流平台

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。