SpringMVC常用注解

1:@RequestMapping

作用:

@RequestMapping注解的作用就是将请求 和 处理请求的 控制器方法 关联起来,建立映射关系。
SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。

位置:

@RequestMapping标识一个类:设置映射请求的请求路径的初始信息。
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息。

属性:
value:

@RequestMapping注解的value属性通过请求的请求地址匹配请求映射。

@RequestMapping注解的value属性是一个字符串类型的数组,表示该请求映射能够匹配多个请求地址所对应的请求。

@RequestMapping注解的value属性必须设置,通过请求地址匹配请求映射。

method:

@RequestMapping注解的method属性通过请求的请求方式(get或post)匹配请求映射。
@RequestMapping注解的method属性是一个RequestMethod类型的数组,表示该请求映射能够匹配多种请求方式的请求。
若当前请求的请求地址满足请求映射的value属性,但是请求方式不满足method属性,则浏览器报错405。

 @RequestMapping(
            value = {"/test","/testRequestMapping"},
            method = {RequestMethod.GET,RequestMethod.POST}
              )
    public String success(){
        return "success";
    }

重点:

SpringMVC路径中的占位符常用于RESTful风格中,当请求路径中将某些数据通过路径的方式传输到服务器中,就可以在相应的@RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据,在通过@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参。

<a th:href="@{/testPath/1/test}">测试@RequestMapping支持路径中的占位符-->/testPath</a>
@RequestMapping("/testPath/{userid}/{username}")
    public String testPath(@PathVariable("userid") int userid,@PathVariable("username") String username){
        System.out.println("userid"+userid);
        System.out.println("username"+username);
        return  "success";
    }

派生注解@GetMapping@PostMapping@PutMapping@DeleteMapping
由于浏览器只接收get,post如何是put和delete默认为get
如果使用put和delete需要通过spring提供的过滤器HiddenHttpMethodFilter

2:@RequestParam

作用:

@RequestParam是将请求参数和控制器方法的形参创建映射关系

属性:

  1. value:指定为形参赋值的请求参数的参数名
  2. required:设置是否必须传输此请求参数,默认值为true,如果为true没传值则400
  3. defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值
@RequestParam(value = "u1",required = false,defaultValue = "default") String username

3:@RequestHander

作用:

@RequestHeader是将请求头信息和控制器方法的形参创建映射关系

@CookieValue(value = "JSESSIONID") String JESSIONID)

4:接收实体类

可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值

<form th:action="@{/testPojo}" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    性别:<input type="radio" name="sex" value=""><input type="radio" name="sex" value=""><br>
    年龄:<input type="text" name="age"><br>
    邮箱:<input type="text" name="email"><br>
    <input type="submit" value="使用pojo实体类接受请求参数">
</form>
   @RequestMapping("/testPojo")
    public String testPojo(user u){
        System.out.println(u);
        return "success";//user{id=null, username='lk666666', password='1111', sex='??·', age=11, email='1@qq.com'}
    }

5:@RequestBody

@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@RequestBody进行标识,当前请求的请求体就会为当前注解所标识的形参赋值

 public String testRequestBody(@RequestBody String requestBody)

6:@ResponseBody

@ResponseBody用于标识一个控制器方法,可以将该方法的返回值直接作为响应报文的响应体响应到浏览器

@RequestMapping("/testResponseUser")
    @ResponseBody
    public user testResponseUser()

7:@RestController

@RestController注解是springMVC提供的一个复合注解,标识在控制器的类上,就相当于为类添加了@Controller注解,并且为其中的每个方法添加了@ResponseBody注解

8:@ControllerAdvice

标记为异常处理类(Java代码异常,非Http请求状态异常),一个异常处理类有很多异常处理器。

@ControllerAdvice
public class MyException {}

9:@ExceptionHandler

异常处理器,在异常处理类中声明


    @ExceptionHandler(ClassFormatException.class)
    public String FormatHandler(){
        return "/error3.jsp";
    }

10:@Configuration

声明此类为注解类,可代替xml配置

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值