使用springmvc参数接收boolean类型参数的问题

2022-10-18

这篇文章主要介绍了使用springmvc参数接收boolean类型参数的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录
  • springmvc参数接收boolean类型参数
  • 如何接收以is开头的boolean类型的参数
    • 开发环境
    • 问题
    • 小结一下

springmvc参数接收boolean类型参数

在开发项目过程中,发现形参对象中的boolean类型的字段isXxxx始终无法被接收,

通过查询资料发现,boolean类型的参数应当避免使用is开头进行命名,因为该类型的参数的set方法会自动命名为is+字段名,如果字段名中是is开头,会产生问题。

修改参数set方法也可以解决,is开头加set。

如何接收以is开头的boolean类型的参数

spring @RequestBody接收is开头的布尔类型的参数???

开发环境

开发工具: IDEA

问题

直接看代码:

参数不以is开头:

/**
 * 布尔类型 不带is  IDEA生成的get set方法如下:
 */
private boolean bestPricing = false;
/**
 * get方法,布尔类型是以is开头
 */
public boolean isBestPricing() {
   return bestPricing;
}
/**
 * set方法
 */
public void setBestPricing(boolean bestPricing) {
    this.bestPricing = bestPricing;
}
参数以is开头:
/**
 * 布尔类型 不带is  IDEA生成的get set方法如下:
 */
private boolean isBestPricing = false;
/**
 * get方法,布尔类型是以is开头
 */
public boolean isBestPricing() {
   return bestPricing;
}
/**
 * set方法
 */
public void setBestPricing(boolean bestPricing) {
    this.bestPricing = bestPricing;
}

小结一下

会发现:

1.java中,boolean类型的参数对应的set方法时isxxx();

2.布尔类型的参数不管是不是以“is”前缀开头,通过IDEA生成的get,set方法都是一样的。这里就有一个坑,如果你参数是以“is”开头,自动生成的get,set方法就拿不到值!!!会导致用实体接收前端参数时,对应的字段没有值。还有就是jsp获取值也获取不到。

3.所以建议,设计数据库时,boolean类型的字段不要以is开头!!

4.还有jsp页面用jstl标签获取实体里面某个属性值时,只要有一个get方法就行。实体里面可以不要属性。如:<c:set var=“isAdd” value="${bestPolicy.create}"/> bestPolicy实体里面可以没有create这个字段,只要有isCreate()或者getCreate方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持北冥有鱼。

您可能感兴趣的文章:

  • springmvc接口接收参数与请求参数格式的整理
  • SpringMVC接收复杂集合对象(参数)代码示例
  • SpringMVC如何接收参数各种场景
  • Spring Mvc中传递参数方法之url/requestMapping详解

《使用springmvc参数接收boolean类型参数的问题.doc》

下载本文的Word格式文档,以方便收藏与打印。