之前在新浪微博上面发了一个微薄:
弱弱的发现在定义boolean类型的时候最好不要使用“is”开头,可以避免一些问题哦
然后有一些朋友朋友问我为什么,当时比较忙,现在写篇文章举一个例子,回复一下这个问题。
最近在使用Spring MVC的时候vo定义了一个字段,一开始字段名字为:isAddCertificateInfo, 相应的get和set方法如下:
public boolean isAddCertificateInfo() { return isAddCertificateInfo; } public void setAddCertificateInfo(boolean isAddCertificateInfo) { this.isAddCertificateInfo = isAddCertificateInfo; }
而前端form表单中定义的为:
<input type="hidden" name="isAddCertificateInfo" id="isAddCertificateInfo" value="true"/>
但是测试发现后端一直拿不到值。然后我就想起了以前在使用某个框架提供的BeanUtil进行属性复制时候遇到的问题,当时就是因为boolean类型字段以is开头。
后来我尝试性的将这个字段名字改为了:addCertificateInfo,然后增加get和set方法:
public boolean isAddCertificateInfo() { return addCertificateInfo; } public void setAddCertificateInfo(boolean addCertificateInfo) { this.addCertificateInfo = addCertificateInfo; }
这样修改了之后,就可以在后端接收到值了。