[英]Spring Enum list empty in @RequestBody
I have the below enum with two values, and i have a search api with many fields, One of these fields is a list of StatusEnum
.我有以下带有两个值的枚举,并且我有一个搜索 api 有许多字段,其中一个字段是
StatusEnum
的列表。 So i created a dto that contains this field.所以我创建了一个包含这个字段的 dto。
The problem when i send the data the list status is always empty我发送数据时的问题列表状态始终为空
json exp: {"status":["En activité"],"startDate":null,"endDate":null}
json exp:
{"status":["En activité"],"startDate":null,"endDate":null}
public enum StatusEnum {
INACTIVITY, ENDACTIVITY;
private static Map<String, StatusEnum > namesMap = new HashMap<>(2);
static {
namesMap.put("En activité", INACTIVITY);
namesMap.put("En fin d'activité", ENDACTIVITY);
}
@JsonCreator
public static StatusEnum forValue(String value) {
return namesMap.get(StringUtils.lowerCase(value));
}
@JsonValue
public String toValue() {
for (Entry<String, StatusEnum > entry : namesMap.entrySet()) {
if (entry.getValue() == this)
return entry.getKey();
}
return null;
}
}
@PostMapping
public ResponseEntity<List<Object>> search(@RequestBody SearchDTO search) { }
public class SearchDTO {
private Date startDate;
private Date endDate
private List<StatusEnum> status;
//getter and setter
}
@JsonCreator
public static StatusEnum forValue(String value) {
return namesMap.get(StringUtils.lowerCase(value));
}
Problem is the usage of #lowerCase in forValue
.问题是 forValue 中
forValue
的使用。 Your keys in your map aren't lower-cased. map 中的密钥不是小写的。 That's why
namesMap.get
can't find anything.这就是
namesMap.get
找不到任何东西的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.