【Spring Boot架构】Controller的使用及获取请求参数的示例

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_27933301/article/details/101845181
注解 释义
@Controller 处理http请求
@RestController 返回json,相当于@Controller+@ResponseBody
@RequestMapping 配置URL映射
@GetMapping 组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping 组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写
@PathVariable 获取URL中的数据
@RequestParam 获取请求参数的值

示例一:返回Json字符串或者跳转到页面(取决于是否有@ResponseBody,示例使用的类都用注解@RestController,因此包含@ResponseBody,故返回Json字符串)

@RequestMapping(value="/demo/java")
public String java() {
    return "java";
}

在这里插入图片描述

示例二:不传参

@RequestMapping(value="/demo/json")
public Map<String, Object> json() {
    Map<String, Object> map = new HashMap<>();
    map.put("sex", "男");
    map.put("name", Arrays.asList("tom","bob","tony"));

    return map;
}

在这里插入图片描述

示例三:传参

@RequestMapping(value="/demo/getId")
public Map<String, Object> getId(Integer id) {
    Map<String, Object> map = new HashMap<>();
    map.put("id", id);
    
    return map;
}

在这里插入图片描述

示例四:参数设置

name:请求传递的字段,映射到方法参数。
required:必输设置,默认true。
defaultValue:默认值

@RequestMapping(value="/demo/login")
public Map<String, Object> login(
        @RequestParam(name = "user", required = false, defaultValue = "admin") String account,
        @RequestParam(name = "pass", required = false, defaultValue = "123456") String password) {
    Map<String, Object> map = new HashMap<>();
    map.put("account", account);
    map.put("password", password);

    return map;
}

在这里插入图片描述

示例五:传递对象

@RequestMapping(value="/demo/bean")
public Map<String, Object> bean(User user) {
    Map<String, Object> map = new HashMap<>();
    map.put("account", user.getAccount());
    map.put("password", user.getPassword());

    return map;
}

在这里插入图片描述

示例六:把参数作为URL地址的一部分

@GetMapping("/user/{id}")
public void getUser(@PathVariable int id) {
    System.out.println("查询到了id="+id);
}

发送请求:http://localhost:8080/user/1
控制台输出:

查询到了id=1

示例七:Model数据模型

  SpringMVC在内部使用了一个Model接口存储数据模型,它的功能类似java.util.Map,但是比Map容易使用。

@PostMapping("/user")
public void saveUser(User user, Model model) {
    System.out.println(model);
    System.out.println("添加用户信息 user:"+ user);
}

发送请求:http://localhost:8080/user?account=yunfan&password=123456
控制台输出:

{user=User{account='yunfan', password='123456'}, org.springframework.validation.BindingResult.user=org.springframework.validation.BeanPropertyBindingResult: 0 errors}
添加用户信息 user:User{account='yunfan', password='123456'}

示例八:Json请求

@PostMapping("/updUser")
public void updateUser(@RequestBody User user) {
    System.out.println("修改用户信息"+user);
}

发送请求:http://localhost:8080/updUser
使用post工具发送Json请求,先设置下Headers参数。
在这里插入图片描述
在这里插入图片描述
控制台输出:

修改用户信息User{account='yunfan', password='123456'}

猜你喜欢

转载自blog.csdn.net/sinat_27933301/article/details/101845181