Enum 类型作为请求参数
@PostMapping(value = "/user/list" , consumes = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "获取用户信息列表", notes = "获取用户信息列表",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE, httpMethod = "POST")
public BaseResult<UserInfo> userList(@Valid @RequestBody UserFilterRequest request) {
return BaseResultUtils.buildBaseResult(userService.userList(request));
}
@Data
@NoArgsConstructor
@ApiModel(value = "userFilterRequest", description = "根据xxx过滤用户")
public class userFilterRequest extends PageRequest {
@ApiModelProperty("xxxx")
private List<HomeClassifyEnum> homeType;
@ApiModelProperty("xxx")
private List<SexClassifyEnum> sexType; !!!注意这里!!!!
@ApiModelProperty("xxxx")
private List<HeightClassifyEnum> heightType;
}
@Getter
public enum SexClassifyEnum{
MAN("MAN", 0, "男"), !!!注意这里!!!!
FEMALE("FEMALE", 1, "女");
private String type;
private int value;
private String remark;
SexClassifyEnum(String type, int value, String remark) {
this.type = type;
this.value = value;
this.remark = remark;
}
public String getType() {
return type;
}
}
请求示例
{
"homeType": ["MAN"], !!!注意这里!!!!
"sexType": [],
"heightType": [],
"pageSize": 10,
"pageNum": 1
}
Boolean 类型作为请求参数
当使用 @Data
注解生成 set get 方法
时,结构体如下
传参
"isTest":false //错误
"test":true //正确
idea
自动生成的 set get 方法
private Boolean isTest;
public Boolean getTest() {
return isTest;
}
public void setTest(Boolean test) {
isTest = test;
}
//----------------------------------------------
private boolean good;
public boolean isGood() {
return good;
}
public void setGood(boolean good) {
this.good = good;
}
传参
"isTest":true //正确
"test":false //错误
两种方法生成的Boolean
类型的getter/setter
方法不同,但是boolean类型是相同的,
但也和普通的setter/getter不太一样
而controller
层通过@requestBody
接收前台返回
的表单或json数据
,通过set方法注入数据到DTO中
,此时就需要注意自己项目中Boolean类型的结构
private Boolean isTest; getTest/setTest
"isTest":true //正确
"test":false //错误
private Boolean isTest; getIsTest/setIsTest
"isTest":false //错误
"test":true //正确
注意,Boolean
和 boolean
不一样
private boolean good;
"good":true //正确
"isGood":false //错误
总结
Boolean 类型 参数名 isXXX,setIsXXX 则传参时应该用 XXX
参数名 isXXX, setXXX 则传参时用 isXXX
boolean 类型,参数名是什么,就用什么
总结
请求的参数
和是 enum 类型的名字
进行匹配的,而不是 enum 类型的属性