springmvc传参方式说明

 

 

表单传参

● get或者post都可以;

● 是表单,不能传body,因此没有请求体,传参会体现在URL上,k=v&k=v

● 同个字段传多个值,会以逗号拼接的形式组合为一个字段;

 

后台接收

● 使用@RequestParam接收单个参数,设置必填或者非必填,默认是必填的;

● 定义类,去接收多个,默认是非必填的;

● 同时定义,都会接收到,不冲突;

 

 

body传参

● 使用body传JSON参数/或者xml或者其他text(但是消息转换器需要适配)

● body请求限于POST;

 

后台接收

● 后台接收使用@RequestBody支持body传参,映射到类; 

● 消息转换器需要支持,可以自定义body里传任何格式,指定解析规则即可

 

以上2种传参方式可以并存

即body传参的同时,URL后面拼接传参

 

 

POST传参示例

curl --location --request POST '127.0.0.1:8080/zhangsan/mvc?name=张三&address=开心街&name=李四&address=幸福路' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "张无忌",
    "address": "武当山"
}'

  

接口示例

@RestController
@RequestMapping("zhangsan")
@Slf4j
public class TestDemo1 {
    
    @PostMapping(value = "mvc")
    public String test1(@RequestParam("name")String name, @RequestParam("name")String name2,  StudentReq formReq, @RequestBody StudentReq jsonReq){
        
        log.info("name = {}",name);
        log.info("name2 ={}", name2);
        log.info("formReq ={}", formReq);
        log.info("jsonReq ={}", jsonReq);
        
        return "OK";
        
    }
}

  

log

 

 

 

posted @ 2021-04-08 14:20  加瓦加瓦  阅读(238)  评论(0编辑  收藏  举报