SpringBoot在Controller层接收参数的常用方法(超详细)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
前言
在工作中比如要实现一个功能前端传什么参数后端的controller
层中怎么接收参数 封装成了什么实体对象有些参数是在URL上使用有些参数是在body上使用service层中做了什么逻辑调用dao层的sql怎么写的前端传的参数后端用controller中的一个方法来接收请求这些都是我们需要思考的逻辑
下面重点讲下SpringBoot
接收请求的n种姿势建议收藏哦~
接收get请求
1get请求无参数
@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这种方式的请求不带参数
2get请求问号拼的参数
使用@RequestParam
来取问号后面拼接的参数,告诉springboot 这个user对应的就是参数中的user
@RequestMapping("/get")
public void get (@RequestParam(name = "user") String user){
System.out.println("接收到参数"+user);
return "接收到参数"+user;
}
获取参数方式2获取http://localhost:9527?user=XXX问号拼接的参数
3get请求路径URL参数
@PathVariable
是取url中的变量 会自动进行赋值。
@GetMapping("/path/{user}")
public String path(@PathVariable(name = "user") String user){
System.out.println("接收到参数"+user);
return "接收到参数"+user;
}
获取参数方式3获取路径参数RestFull风格入参
接收post请求
1 请求的参数是json格式 各参数名与实体类定义的字段一致
@RequestBody
将参数映射为一个java对象
@PostMapping("/post/same")
public String same(@RequestBody Users users){
System.out.println("JSON 接到的"+users.toString());
return "JSON 接到的"+users.toString();
}
获取参数方式1post请求JSON数据格式各参数名与实体类定义的字段一样
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();
}
获取参数方式2post请求JSON数据格式各参数名与POJO定义的字段完全不一样需要引入fastJson依赖
3post请求的参数名都对应可以直接获取
@RequestMapping("/sameParamName")
public String sameParamName(String users , String id){
System.out.println("users:"+users+"id: "+id);
return "users:"+users+"id: "+id;
}