本文属于由开发经验触发的主观臆测。未查看官方文档或源码。不保证正确性,仅做记录。 随后验证。

@RequestMapping

RequestMapping本身没有限制请求是get或post。例如,下面的地址通过get/post都可以直接访问。

同时因为例子中没有参数,content-type(或者说入参的格式)也没有要求。

@RequestMapping("/common")
MVCResult request(){
    return MVCResult.succ("common","成功");
}

配合@RequestParam使用的情况,如下。支持入参为application/x-www-form-urlencoded(&分隔的参数键值对)。仍然是不限制请求方式是get还是post。

//.../commonWithParam?name=背景框&exactly=false 
@RequestMapping("/commonWithParam")
MVCResult requestWithParam(@RequestParam("name")String name){
    return MVCResult.succ("common","成功:" + name);
}

配合@RequestBody的情况,需要入参格式为application/json,后台将传递过来的json数据映射为Vo类。请求只能是用post(?)

@RequestMapping("/update")
MVCResult update2(@RequestBody @Valid DatavUpdateComponentVo model, BindingResult bindingResult) {
    String oper = "update Component";
    return MVCResult.succ(oper, "修改成功");
}

配合@ModelAttribute的情况,@ModelAttribute查询的是字符串,因此所有的参数可以通过url传给服务器

@RequestMapping("/modelAttribute")
MVCResult modelAttr(@ModelAttribute(name = "name") String name) {
    return MVCResult.succ("modelAttribute", "成功:" + name);

}

2019070415622187194089.png

formdata的时候也可以用接受上传文件时的参数:

//上传图片举例 postman中选择form-data
@RequestMapping("/upload")
public MVCResult fileUpload(@ModelAttribute DatavUploadVo body) {

}
//文件
@Data
@Getter
@Setter
public class DatavUploadVo {
    MultipartFile file;
}

@GetMapping、@PostMapping

是一种简写,限制了method的类型

@RequestMapping(method = RequestMethod.GET/POST)