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

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

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

  

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

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

时间: 2024-10-12 18:50:41

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

Spring MVC请求参数绑定

所谓请求参数绑定,就是在控制器方法中,将请求参数绑定到方法参数上 @RequestParam 绑定单个请求参数到方法参数上 @RequestParam("id") Integer id 将请求参数名为id的变量,绑定到id参数上,如果不知道@RequestParam值,默认从请求参数中取和变量名相同的请求参数 @RequestParam(value = "id",required = false) Integer id 可以通过指定required参数来指定是否必须

SpringMVC表单或Json中日期字符串与JavaBean的Date类型的转换

SpringMVC表单或Json中日期字符串与JavaBean的Date类型的转换 场景一:表单中的日期字符串和JavaBean的Date类型的转换 在使用SpringMVC的时候,经常会遇到表单中的日期字符串和JavaBean的Date类型的转换, 例如,如下代码S_ROLE_QO这个bean中包含有Date类型属性,不处理就拿不到值. /** * 分页取角色列表 * @param s_ROLE_QO 角色查询条件 * @return */ @RequestMapping(value = "/

Spring表单标签

虽然我们可以使用HTML原生的form表单标签来轻松的写出一个表单,其实我一直都是这样做的,但是使用Spring表单标签可以更方便我们完成例如:验证失败后表单数据的回填功能(虽然你可以使用EL+JSTL来实现),但是使用spring表单标签更为方便. 如同使用JSTL一样,我们需要先在JSP页面中使用taglib指令导入: <%@taglib prefix="form" uri="http://www.springframeork.org/tags/form"

html表单-双向绑定

潜水多年.一直是只看不评不写多年,每每看到各位大牛分享的经典文章都是默默的收藏,对大牛技术分享技术表示感谢,这么多年从博客园学到了很多. 这段时间项目告一段落. 正好这段时间相对清闲,我也整理一些常用的内容与大家分享下. 从毕业到现在转眼间也有五年半了.一直从事企业管理软件开发.做过asp.net webform.做过silverlight.也做过asp.net mvc.对于企业管理软件,不管用什么技术展示,表单控件都是很重要的一个控件,今天就从表单控件--双向绑定说起吧!至于为什么需要双向绑定

Servlet之doPost获取表单参数

/** * 获取表单参数 */ private void readForm() { // TODO Auto-generated method stub Enumeration e = request.getParameterNames(); while (e.hasMoreElements()) { String parameterName = (String) e.nextElement(); String parameterValue= request.getParameter(param

javaEE:day6-requset和response用法、表单参数的接受、文件手动上传(简易版)

通过<%=request.getContextPath() %> 可以将项目名写活,这样,即使项目名变了,仍可以运行. request代码每一次请求的容器.浏览器每次请求都是一个新的request对象.因此放在request里面的属性request.getAttribute()是空的,上一个request放的属性request.setAttribute() 是上一个的.与这次无关.但如果是转发的时候,那么request对象是共享的.这种情况下,两次的request是同一个.这种情况下,里面的属

表单输入绑定

vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V是View的简写,VM就是ViewModel. 单向绑定和双向绑定的区别? 单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新. 有单向绑定,就有双向绑定. 如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向

vue 之 表单输入绑定

vue的核心:声明式的指令和数据的双向绑定. 那么声明式的指令,已经给大家介绍完了.接下来我们来研究一下什么是数据的双向绑定? 另外,大家一定要知道vue的设计模式:MVVM M是Model的简写,V是View的简写,VM就是ViewModel. 单向绑定和双向绑定的区别? 单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新. 有单向绑定,就有双向绑定. 如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向

VUE:事件处理和表单输入绑定

事件处理 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>07_事件处理</title> </head> <body> <!-- 1.绑定监听: v-on:xxx="fun" @xxx="fun" @xxx="fun(参数)" 默认事件形参:event 隐