springbootJava之家

SpringMVC常用注解简单介绍

2020-08-19  本文已影响0人  小小土豆dev

Spring框架常用注解简单介绍
SpringMVC常用注解简单介绍
SpringBoot(一)创建一个简单的SpringBoot工程
SpringBoot(二)SpringBoot多环境配置
SpringBoot(三)SpringBoot整合MyBatis
SpringBoot(四)SpringBoot整合 Redis

SpringMVC

SpringMVC是Spring框架的一个模块,提供了web mvc , webviews , jsp等解决功能。

@RequestMapping 注解介绍

@RequestMapping用于建立请求URL和处理请求方法之间的对应关系。

出现位置:可以写在类上,方法上

  1. 写在方法上:和请求url绑定
  2. 写在类上:给访问url进行窄化处理。可以让我们的url变成模块化的形式。

属性:

@RequestParam 注解介绍

可以给请求字段另起一个名称,还可以给前端没有传递的参数赋默认值。

<!-- RequestParam注解使用 -->
<a href="account/testRequestParam?id=1" >测试RequestParam注解</a>
@Controller("accountController")
@RequestMapping("/account")
public class AccountController {

    // 给请求字段另起一个名称
    @RequestMapping("/testRequestParam")
    public String testRequestParam(@RequestParam(value = "id", required = true) Integer accountId) {
        System.out.println("AccountController --- testRequestParam:" + accountId);
        return "success";
    }
}

@RequestBody 注解介绍

可以获取请求body里的数据

<!-- RequestBody注解使用 -->
<form action="account/testRequestBody" method="POST">
    账户名称:<input type="text" name="name" ><br />
    账户金额:<input type="text" name="money" ><br />
    账户地址:<input type="text" name="address" ><br />
    <input type="submit" value="保存" />
</form>
@Controller("accountController")
@RequestMapping("/account")
public class AccountController {

    // 获取请求body里的数据
    @RequestMapping("/testRequestBody")
    public String testRequestBody(@RequestBody String body) {
        System.out.println("AccountController --- testRequestBody:" + body);
        return "success";
    }
}

@PathVaribale 注解介绍

用于绑定url中的占位符。

属性:
value:用于指定占位符的名称
required:是否必须提供占位符

@Controller("accountController")
@RequestMapping("/account")
public class AccountController {

    // 用于绑定url中的占位符
    @RequestMapping("/testPathVaribale/{id}")
    public String testPathVaribale(@PathVariable(value = "id", required = true) Integer accountId) {
        System.out.println("AccountController --- testPathVaribale:" + accountId);
        return "success";
    }
}

@RequestHeader 注解介绍

用于获取header里面的值

@Controller("accountController")
@RequestMapping("/account")
public class AccountController {

    @RequestMapping("/testRequestHeader")
    public String testRequestHeader(@RequestHeader("Accept-Language") String header ) {
        System.out.println("AccountController --- testRequestHeader:" + header);
        return "success";
    }
}

@CookieValue 注解介绍

用于获取cookie里的值
value:用于指定cookie名称
required:是否必须有此cookie

@Controller("accountController")
@RequestMapping("/account")
public class AccountController {

    @RequestMapping("/testCookieValue")
    public String testCookieValue(@CookieValue(value = "JSESSIONID", required = true) String header) {
        System.out.println("AccountController --- testCookieValue:" + header);
        return "success";
    }
}

@ModelAttribute 注解介绍

再当前类中的方法执行之前,会先执行被ModelAttribute修饰的方法

@Controller("accountController")
@RequestMapping("/account")
public class AccountController {

    @RequestMapping("/testModelAttribute")
    public String testModelAttribute(User user) {
        System.out.println("AccountController --- testModelAttribute:" + user.toString());
        return "success";
    }
    
    @ModelAttribute
    public User testModelAttributeBefore() {
        // 模拟去数据库先查询用户的信息
        User user = new User();
        user.setNickname("dff");
        user.setPassword("111111");
        user.setUsername("是非得失方法");
        
        System.out.println("数据库中的用户信 --- " + user.toString());
        
        return user;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读