前言
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方法