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


浙公网安备 33010602011771号