你的Person类不是真正的春天豆.它只是一个类,当您通过@RequestBody注释调用应用程序端点时,其参数已设置.不在你的通话体内的参数根本不会被绑定,所以为了解决你的问题,你可以这样做:
>像这样设置person类的默认值(为方便起见,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"
}
>如果在控制器中打印出person对象,您会注意到firstName获得了非默认值,而其他值是默认值:
public void add(@Valid @RequestBody Person oPerson) {
System.out.println(oPerson);
}
控制台输出:
Person {firstName =’notDefault’,lastName =’default’,activeState = 7}