开发者

SpringBoot在Controller层接收参数的n种姿势(超详细)

目录
  • 前言
  • 接收get请求
  • 接收post请求

前言

在工作中,比如要实现一个功能,前端传什么参数,后端的controller层中怎么接收参数 ,封装成了什么实体对象,有些参数是在URL上使用,有些参数是在body上使用,service层中做了什么逻辑,调用dao层的sql怎么写的,前端传的参数,后端用controller中的一个方法来接收请求这些都是我们需要思考的逻辑!

下面重点讲下SpringBoot接收请求的n种姿势,建议收藏哦~

接收get请求

(1)get请求无参数

@RestController
@RequestMapping("book")
public class BookController {

    @Resource
    private BookService bookService;
    /**
     * 按照条件获取书籍信息
     * @param bookParams
     * @return
     */
    @GetMapping("/getBookLists")
    @ResponseBody
    public CommonResponse<List<Book>> getBookLists(BookParams bookParams) {
        // 按照查询条件分页查询书籍
        List<Book> books = bookService.getBookList(bookParams);
        CommonResponse response = CommonResponse.successInstance(books);
        return response;
    }
}

获取参数方式1:http://localhost:9527/book/getBookLists这种方式的请求,不带参数

SpringBoot在Controller层接收参数的n种姿势(超详细)

(2)get请求问号拼的参数

使用@RequestParam来取问号后面拼接的参数,告诉springboot 这个user对应的就是参数中的user

  @RequestMapping("/get")
    public void get (@RequestParam(name = "user编程") String user){
        SphpyvLtuZESstem.out.println("接收到参数:"+user);
        return "接收到参数:"+user;
    }

获取参数方式2:获取http://localhost:9527?user=XXX问号拼接的参数

SpringBoot在Controller层接收参数的n种姿势(超详细)

(3)get请求路径URL参数

@PathVariable是取url中的变量 ,会自动进行赋值。

@GetMapping("/path/{user}")
    public String path(@PathVariable(name = "user") String user){
        System.out.println("接收到参数:"+user);
        return "接收到参数:"+user;
    }

获取参数方式3:获取路径参数,RestFull风格入参

SpringBoot在Controller层接收参数的n种姿势(超详细)

接收post请求

(1) 请求的参数是json格式 ,各参数名与实体类定义的字段一致

@RequestBody将参数映射为一个Java对象

   @PostMapping("/post/same")
    public String same(@RequestBody Users users){
        System.out.println("JSON 接到的:"+users.toString());
        return "JSON 接到的:"+users.toString();
    }

获取参数android方式1:post请求JSON数据格式,各参数名与实体类定义的字段一样

SpringBoot在Controller层接收参数的n种姿势(超详细)

(2)请求JSON数据格式,各参数名与实体类定义的字段完全不一样(需要引入fastJson依赖

<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.57</version>
		</dependency>
@PostMapping("/fastJson")
    public String fastJson(@RequestBody JSONObject param){
        System.out.println("JSON :"+param.toJSONString());
        return "JSON :"+param.toJSONString();
    }

获取参数方式2:post请求JSON数据格式,各参数名与POJO定义的字段完全不一样(需要引入fastJson依赖)

SpringBoot在Controller层接收参数的n种姿势(超详细)

(3)post请求的参数名都对应可以直接获取

@RequestMapping("/sameParamName")
    public String sameParamName(String users , String id){
        System.out.println("users:"+users+"id: "+id);
        return "users:"+users+"id: "+id;
    }

SpringBoot在Controller层接收参数的n种姿势(超详细)

到此这篇关于SpringBoot在Controller层接收参数的常用方法(超详细)的文章就介绍到这了,更多相关SpringBoot Controller 接收参数内容请搜索我们以前的文章或继续浏览下面的相关文章希python望大家以后多多支持我们!

开发者_Python学习

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜