Spring MVC 常用注解简析:

1、@Controller注解类型

  • org.springframework.stereotype.Controller注解类型用于指示Spring 类的实例是一个控制器,
  • 其注解形式为@Controller。
  • 该注解在使用时 不需要再实现Controller接口,只需要将@Controller注解加入到控制器 类上,
  • 然后通过Spring的扫描机制找到标注了该注解的控制器即可。

2、@RequestMapping注解类型

  • Spring通过@Controller注解找到相应的控制器类后,还需要知道控制器内部对每一个请求是如何处理的
  • 这就需要使用@RequestMapping注解类型,它用于映射一个请求或一个方法。
  • 使用时,可以标注在一个方法或一个类上。
  • 标注在方法上:作为请求处理方法在程序接收到对应的URL请求时被调用
package com.ssm.controller;
import org.springframework.stereotype.Controller;
import org.springframework web.bind.annotation.RequestMapping;
@Controller
public class FirstController{
@RequestMapping(value="/firstController")
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) {
	...
	return mav;
	}
}
此时,可以通过地址: http://localhost:8080/chapter12/firstController访 问该方法!
  • 标注在类上:该类中的所有方法都将映射为相对于类级别的请求,表示该控 制器所处理的所有请求都被映射到value属性值所指定的路径下
package com.ssm.controller;
import org.springframework.stereotype.Controller;
import org.springframework web.bind.annotation.RequestMapping;
...
@Controller
@RequestMapping(value="/hello")
public class FirstController{
@RequestMapping(value= */firstController")
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) {
	...
	return mav;
	}
}

由于在类上添加了@RequestMapping注解,并且其value属性值为“/hello”, 所以上
述代码方法的请求路径将变为: htp:p/localhost:8080/chapter12/hello/firstController.

3、组合注解

  • @GetMapping:匹配GET方式的请求;
  • @PostMapping:匹配POST方式的请求;
  • @PutMapping:匹配PUT方式的请求;
  • @DeleteMapping:匹配DELETE方式的请求;
  • @PatchMapping:匹配PATCH方式的请求。
说明
  • @GetMapping注解是@RequestMapping(method = RequestMethod.GET)的缩写,它会将HTTP GET请求映射到特定的 处理方法上
  • @GetMapping(value="/user/{id}") 就相当于
    @RequestMapping(value= “/user/{id}”,method=RequestMethod.GET)

4、@RequestParam注解类型

  • @RequestParam注解的属性声明

属性

说明

value

name属性的别名,这里指参数的名字,即入参的请求参数名字,如value=fitem id"表示请求的参数中名字为item id 的参数的值将传入。如果只使用vaule属性,则可以省略value属性名。

name

指定请求头绑定的名称。。

required

用于指定参数是否必须,默认是true,表示请求中- -定要有相应的参数。

defaultValue

默认值,表示如果请求中没有同名参数时的默认值。

  • 假设请求地址为 http://localhost:8080/demo/selectUser?user_id=1,
  • 在后台selectUser()方法中的使用方式如下:
  • 先用@RequestParam接收 同名参数,后间接绑定 到方法形参上
@RequestMapping("/selectUser") 
public String selectUser(@RequestParam(value="user_id")Integer id) {    
  	System.out.println("id="+id);      
	return "success"; 
}

@RequestBody和@ResponseBody

  • 在使用注解式开发时,需要用到2个重要的JSON格式转换注解

注解

说明

@RequestBody

用于将请求体中的数据绑定到方法的形参中。该注解用在方法的形参上。

@ResponseBody

用于直接返回return对象。该注解用在方法上。

Spring MVC 常用注解的使用

为了保证Spring能够找到控制器类,还需要在Spring MVC的配置文件中添加 相应的扫描配置信息

在applicationContext.xml 中引入context命名空间

springMVC注解驱动 springmvc注解详解_MVC

指定需要扫描的包
<!-- 多个包之间用逗号连接 -->
<context:component-scan base-package="com.ssm.controller" />
注意:

使用注解方式时,程序的运行需要依赖Spring的AOP包,因此需要添加 spring-aop-4.3.6.RELEASE.ja