使用springmvc參數(shù)接收boolean類型參數(shù)的問題
springmvc參數(shù)接收boolean類型參數(shù)
在開發(fā)項目過程中,發(fā)現(xiàn)形參對象中的boolean類型的字段isXxxx始終無法被接收,
通過查詢資料發(fā)現(xiàn),boolean類型的參數(shù)應(yīng)當(dāng)避免使用is開頭進行命名,因為該類型的參數(shù)的set方法會自動命名為is+字段名,如果字段名中是is開頭,會產(chǎn)生問題。
修改參數(shù)set方法也可以解決,is開頭加set。
如何接收以is開頭的boolean類型的參數(shù)
spring @RequestBody接收is開頭的布爾類型的參數(shù)???
開發(fā)環(huán)境
開發(fā)工具: IDEA
問題
直接看代碼:
參數(shù)不以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; } 參數(shù)以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; }
小結(jié)一下
會發(fā)現(xiàn):
1.java中,boolean類型的參數(shù)對應(yīng)的set方法時isxxx();
2.布爾類型的參數(shù)不管是不是以“is”前綴開頭,通過IDEA生成的get,set方法都是一樣的。這里就有一個坑,如果你參數(shù)是以“is”開頭,自動生成的get,set方法就拿不到值?。?!會導(dǎo)致用實體接收前端參數(shù)時,對應(yīng)的字段沒有值。還有就是jsp獲取值也獲取不到。
3.所以建議,設(shè)計數(shù)據(jù)庫時,boolean類型的字段不要以is開頭!!
4.還有jsp頁面用jstl標(biāo)簽獲取實體里面某個屬性值時,只要有一個get方法就行。實體里面可以不要屬性。如:<c:set var=“isAdd” value="${bestPolicy.create}"/> bestPolicy實體里面可以沒有create這個字段,只要有isCreate()或者getCreate方法
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot + JPA 配置雙數(shù)據(jù)源實戰(zhàn)
這篇文章主要介紹了springboot + JPA 配置雙數(shù)據(jù)源實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Spring事務(wù)框架之TransactionDefinition源碼解析
這篇文章主要為大家介紹了Spring事務(wù)框架之TransactionDefinition源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08springboot集成mybatis-maven插件自動生成pojo的詳細(xì)教程
這篇文章主要介紹了springboot集成mybatis-maven插件自動生成pojo的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01