我正在使用:
当我在控制器中收到我的实体时
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
Long create(@RequestBody Blog blog) {
blogService.insert(blog);
return blog.getId();
}
我只设置了博客名称,但Blog.java
包含默认值:
private Boolean isDisabled = false;
private Boolean canCreateTags = true;
private Boolean canCreateCategories = true;
private Boolean hasRss = false;
这是我的请求的请求主体:
{ “组织”:{ “ID” 为 “1”}, “说明”: “测试”}
所有未发送的值似乎都是null
。
但是当我使用BlogDTO
代替Blog
:
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
Long create(@RequestBody BlogDTO blog) {
blogService.insert(blog);
return blog.getId();
}
所有值都设置为默认值。
答案 0 :(得分:1)
使用默认值覆盖Blog.java的toString方法应解决此问题,如下所示
public class Blog {
private Boolean isDisabled = false;
private Boolean canCreateTags = true;
private Boolean canCreateCategories = true;
private Boolean hasRss = false;
@Override
public String toString() {
return "Blog{" +
"isDisabled='" + isDisabled + '\'' +
", canCreateTags='" + canCreateTags + '\'' +
", canCreateCategories=" + canCreateCategories +
'}';
}
}
请参考此问题和答案作为参考Spring 4 MVC - Rest service - use default values in beans
答案 1 :(得分:0)
如果您想拥有默认值,则需要在发送到发布呼叫主体时明确设置