首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

作者头像
程序员云帆哥
发布于 2022-05-12 10:07:40
发布于 2022-05-12 10:07:40
1.7K0
举报
文章被收录于专栏:程序员云帆哥程序员云帆哥

Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。

汇总目录链接:【Spring Boot实战与进阶】学习目录

文章目录

注解

释义

@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字符串。

代码语言:javascript
复制
@RequestMapping(value="/demo/java")
public String java() {
    return "java";
}

示例二:不传参

代码语言:javascript
复制
@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;
}

示例三:传参

代码语言:javascript
复制
@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:默认值

代码语言:javascript
复制
@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;
}

示例五:传递对象

代码语言:javascript
复制
@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地址的一部分

代码语言:javascript
复制
@GetMapping("/user/{id}")
public void getUser(@PathVariable int id) {
    System.out.println("查询到了id="+id);
}

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

代码语言:javascript
复制
查询到了id=1

示例七:Model数据模型

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

代码语言:javascript
复制
@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 控制台输出:

代码语言:javascript
复制
{user=User{account='yunfan', password='123456'}, org.springframework.validation.BindingResult.user=org.springframework.validation.BeanPropertyBindingResult: 0 errors}
添加用户信息 user:User{account='yunfan', password='123456'}

示例八:Json请求

代码语言:javascript
复制
@PostMapping("/updUser")
public void updateUser(@RequestBody User user) {
    System.out.println("修改用户信息"+user);
}

发送请求:http://localhost:8080/updUser 使用post工具发送Json请求,先设置下Headers参数。

控制台输出:

代码语言:javascript
复制
修改用户信息User{account='yunfan', password='123456'}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 文章目录
  • 示例一:返回Json字符串或者跳转到页面
  • 示例二:不传参
  • 示例三:传参
  • 示例四:参数设置
  • 示例五:传递对象
  • 示例六:把参数作为URL地址的一部分
  • 示例七:Model数据模型
  • 示例八:Json请求
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档