@ResponseBody註解和@RequestBody註解使用

liuxiangke0210發表於2020-10-22

原文連結:http://www.dtmao.cc/news_show_25718.shtml

1,@ResponseBody註解

@ResponseBody將java物件轉為json格式的資料,返回頁面。

一般@RestController的作用就相當於@ResponseBody+@Controller

一般使用:

@RestController
@RequestMapping("/sys/student")
public class StudentController {
}

2,@RequestBody註解

 @RequestBody使用json的格式傳遞資料,把json資料封裝到物件中來。如果用 @RequestBody,那麼就需要使用post方式提交。引數required = false:表示引數值可以空。 

一般使用:

 @ApiOperation(value = "帶條件分頁講師列表")
    @PostMapping("page/{page}/{limit}")
    public String pageListCondition(
            @ApiParam(name = "page", value = "當前頁碼", required = true) @PathVariable Long page,
            @ApiParam(name = "limit", value = "每頁記錄數", required = true)@PathVariable Long limit,

            @RequestBody(required = false) StudentQuery studentQuery){

        Page<Student> pageParam = new Page<>(page, limit);
        QueryWrapper<Student> query=new QueryWrapper();
        //構建條件
        //多條件組合查詢(即判定條件十分為空,決定是拼接條件
        Integer age = studentQuery.getAge();
        LocalDateTime createDate = studentQuery.getCreateDate();
        LocalDateTime updateDate = studentQuery.getUpdateDate();
        Integer id = studentQuery.getId();

        if(!StringUtils.isEmpty(age)){
            query.eq("age",age);
        }
        //gt,大於等於
        if(!StringUtils.isEmpty(createDate)){
            query.gt("begin",createDate);
        }
        //le,小於等於
        if(!StringUtils.isEmpty(updateDate)){
            query.le("updateDate",updateDate);
        }
        if(!StringUtils.isEmpty(id)){
            query.eq("id",id);
        }
        iStudentService.page(pageParam, query);
        List<Student> records = pageParam.getRecords();
        long total = records.size();//當前查詢出多少條資料


        System.out.println(total);
        JSONObject json=new JSONObject();
        json.put("total", total);
        json.put("records", records);

        return  json.toString();
    }

在方法引數中 @RequestBody(required = false) StudentQuery studentQuery。可以在頁面上把物件封裝成json提交。

如:

 

對比,沒有使用 @RequestBody註解時候,即 :StudentQuery studentQuery,雖然根據物件不用註解也可以獲取頁面傳遞的資料。是這樣的:

 

相關文章