您的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;}@Overridepublic 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}


