您的Person类并不是真正的弹跳豆。它只是一个类,由于@RequestBody
注释而在您调用应用程序端点时会设置参数。不在调用主体中的参数将不会被绑定,因此要解决您的问题,您可以执行以下操作:
像这样为您的人员类别设置默认值(toString()
为方便起见,将其覆盖:
public class Person {
public Person() {
}
private String firstName = "default";
private String lastName = "default";
private Integer activeState = 7;
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public Integer getActiveState() {
return activeState;
}
@Override
public String toString() {
return "Person{" +
"firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", activeState=" + activeState +
'}';
}
}
对端点执行请求,例如使用以下json数据:
{
"firstName": "notDefault"
}
如果在控制器中打印出人员对象,则会注意到firstName获得了非默认值,而其他则为默认值:
public void add(@Valid @RequestBody Person oPerson) {
System.out.println(oPerson);
}
控制台输出: Person{firstName='notDefault', lastName='default', activeState=7}