@RequestBody接收实体类时,部分字段丢失的问题

问题:

1.@RequestBody注解的实体类里,如果存在首字母为小写,第二个字母大写的字段时,此字段会传为null的bug。

private String tUser;  public String getTUser() { 	return tUser; } public void setTUser(String tUser) { 	this.tUser = tUser; }

2.在IDEA中,布尔类型boolean/Boolean的isXXX变量,在自动生成getter和setter方法时,会去除is标识,如图所示。

private Boolean isSignUpAudit;  public Boolean getSignUpAudit() {     return isSignUpAudit; }  public void setSignUpAudit(Boolean signUpAudit) {     isSignUpAudit = signUpAudit; }

问题1解决方法:

 1、修改字段名

2、使用@JsonProperty注解,手动写get和set方法

@JsonProperty(value = "tUser") private String tUser;  public String getTUser() { 	return tUser; }  public void setTUser(String tUser) { 	this.tUser = tUser; }

private String tUser;  @JsonProperty(value = "tUser") public String getTUser() { 	return tUser; }  @JsonProperty(value = "tUser") public void setTUser(String tUser) { 	this.tUser = tUser; }

3、重写get和set方法,第一个字母小写开头

private String tUser;  public String gettUser() {     return tUser; }  public void settUser(String tUser) {     this.tUser = tUser; }

问题2解决方法:

1、修改字段名

2、使用@JsonProperty注解,手动写get和set方法

@JsonProperty(value = "isSignUpAudit") private Boolean isSignUpAudit;  public Boolean getSignUpAudit() {     return isSignUpAudit; }  public void setSignUpAudit(Boolean signUpAudit) {     isSignUpAudit = signUpAudit; }

private Boolean isSignUpAudit;  @JsonProperty(value = "isSignUpAudit") public Boolean getSignUpAudit() {     return isSignUpAudit; }  @JsonProperty(value = "isSignUpAudit") public void setSignUpAudit(Boolean signUpAudit) {     isSignUpAudit = signUpAudit; }

3、重写get和set方法,带上is开头

private Boolean isSignUpAudit;  public Boolean getIsSignUpAudit() { 	return isSignUpAudit; }  public void setIsSignUpAudit(Boolean isSignUpAudit) { 	this.isSignUpAudit = isSignUpAudit; }