@Requestparam
源码
public @interface RequestParam {
@AliasFor("name")
String value() default "";
@AliasFor("value")
String name() default "";
boolean required() default true;
String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n";
}
语法
@Requestparam
value:参数名
required:是否包含该参数,默认true,这样该请求路径中就必须包含该参数
defaultValue:默认参数值,如果设置了该值,required=true则失效,自动为false,如果没有传改参数,就使用默认值。
映射方式一
@RequestMapping("/demo")
public ResponseData demo(@RequestParam Map<String, Object> map)
$.ajax({
type: "post",
url: "/demo",
data: {"name": "zhangsan", "age": "31"}
dataType: "json",
success: function (resp) {
}
});
映射方式
映射方式二
@RequestMapping("/demo")
public ResponseData demo(@RequestParam(value="name",required=true,defaultValue="hello")String name, String age)
$.ajax({
type: "post",
url: "/demo",
data: {"name": "zhangsan", "age": "31"}
dataType: "json",
success: function (resp) {
}
});
给name一个默认值,hello.
适用场景
用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容;
form-data、x-www-form-urlencoded;
rl中的?后面参数可以用@RequestParam;
(@RequestParam Map map);
(@RequestParam String waterEleId,@RequestParam String enterpriseName)
@RequestBody
源码
public @interface RequestBody {
boolean required() default true;
}
映射方式
映射方式一
@RequestMapping("/saveRole")
public ResponseData saveRole(@RequestBody List<RoleEntity> roleEntities)
$.ajax({
type: "post",
url: "/demo",
data: JSON.stringify(对象数组)
dataType: "json",
contentType: "application/json",
success: function (resp) {
}
});
映射方式二 映射对象(对象中包括对象)
@RequestMapping("/saveRole")
public ResponseData saveRole(@RequestBody RoleEntity roleEntities)
$.ajax({
type: "post",
url: "/demo",
data: JSON.stringify({"name":"张三", "user":{"username":"xxxx"}})
dataType: "json",
contentType: "application/json",
success: function (resp) {
}
});
适用场景
一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据;
(@RequestBody Map map),(@RequestBody Object object);
contentType: “application/json”,时候可用。
注意
1.get请求中不能使用@RequestBody.