第一步(問題):
“書到用時方恨少”啊,瞬間感覺自己語文水平太差,竟不能用文字描述清楚出現了什么問題。唉,,,還是看圖說話吧。
各位親友明白我想說什么了吧?哈哈!首先,我知道在數據庫里第一條記錄的號牌號碼字段值是空的,但我想它是空的你不顯示,后面的照常顯示不就完了嗎?是不是這個插件有BUG啊?但為什么其它列卻是好的呢,直覺告訴我“應該是我哪里搞錯了,哈哈哈哈”。
第二步(分析):
首先我們大概定位是控件的問題還是后台數據的問題?既然其它列可以正常顯示,唯獨這條記錄不行,所以應該是后台數據,而不是前端控件的問題。那么,我們就來看看后台數據到底發生了什么?這兩條數據記錄有什么不一樣的呢?然后我就准備單步調試,看看是哪里出問題了。噔噔噔噔,調試到關鍵一步了,
看這一步,大家都知道,使用bootstrap-table.js插件進行服務器端分頁時,我們需要將查詢到的數據轉化成json格式然后傳給前台,到這一步的時候我就把轉化后的json字符串拷貝出來,對比着看哪里出問題了。果不其然,第一條記錄里hphm(號牌號碼)那個字段是完全沒有的(key-value都沒有),然后對比數據庫中的記錄發現,所有值為null的字段全部都沒有。哦。。。,我用的是com.alibaba.fastjson 提供的那個json類,難道是這個類寫的有問題?ali程序員不會寫的這么爛吧?他們可是行業標桿啊。於是我去網上搜了一番,果然,ali程序員不負重望啊(感謝感謝,996不是白干的啊,哈哈)!
第三步(解決辦法):
這個類默認是不轉化值為空的字段的,需要的話像上面這樣寫就可以了。網上教程很多,直接寫成這樣就O了。
String str = JSON.toJSONString(pageHelper, SerializerFeature.WriteMapNullValue);
結果有了,正常顯示,不過這個“空”讓人看起來有點不爽,大家在這里修改就可以了,想顯示什么就顯示什么。
哈哈,好了,可以了。大家開始吐槽吧。。。