代码改变世界

Spring表单参数绑定中对“is”开头的boolean类型字段的的处理

2014-07-23 17:46  Rollen Holt  阅读(6695)  评论(1编辑  收藏  举报

之前在新浪微博上面发了一个微薄:

  弱弱的发现在定义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;
    }

 

  

这样修改了之后,就可以在后端接收到值了。