【发布时间】:2016-05-31 16:30:40
【问题描述】:
我正在使用Spring 4.1.4 并实现一个简单的REST 服务。我确实有一个POST 方法,它获取一个Person 对象作为请求。
@ResponseStatus(value = HttpStatus.CREATED)
@RequestMapping(value = "", method = RequestMethod.POST, headers = "Accept=application/json", consumes = "application/json")
public void add(@Valid @RequestBody Person oPerson) throws Exception {
//do the things
}
豆:
public class Person {
public Person(){ }
private String firstname;
private String lastname;
private Integer activeState;
//getter+setter
}
我的问题是 - 是否有可能为 bean 中的属性设置默认值。像这样的:
@Value(default=7)
private Integer activeState;
我知道在@RestController 方法中使用@RequestParam 注释时,可以使用@RequestParam(value="activeState", required=false, defaultValue="2") 设置默认值,但是否有可能在类级别上做类似的事情?
【问题讨论】:
-
什么时候应该应用默认值:如果参数根本不在请求中,或者参数是否为空/空?
-
只需为类中的整数字段声明一个值:
private Integer activeState = 2;还是我误会了你? -
@Ralph 好问题 - 在这两种情况下:不存在和 null 或空
-
@RobinJonsson - 我也想过这个问题,但我不知道这是否是最好的解决方案,我也将该对象用作数据库的持久性对象...
-
@K.E.我一直有不使用我的实体一直到前端的心态。但是,只要传入对象没有覆盖该字段,就可以像这样设置默认值。这不是你要找的吗?
标签: java spring rest spring-mvc spring-4