0
我在我的服務類中編寫了一個函數,用於評估從控制器傳遞的參數,但Grails返回錯誤的評估結果。Grails對錶達式的錯誤評估
def list(String q,String qval,String srt,String ord){
log.debug("q==="+q)
log.debug("qval==="+qval)
log.debug("srt==="+srt)
log.debug("order==="+ord)
所有這些調試語句按預期打印爲空。現在
boolean qvalbool=qval?.trim()
log.debug("qvalbool===>>"+qvalbool) prints true!!!
!StringUtils.isEmpty(q) && !StringUtils.isEmpty(qval) returns true!!
這兩個語句應返回false,而他們正在返回true這是怎麼回事?有任何想法嗎?
我使用Grails 2.4.2
也許輸入是「空」作爲字符串?這就是爲什麼當你打印它們時你會看到null的原因? – evanwong 2015-02-11 19:53:14
輸入爲空,但條件結果在顯示爲真時應爲false – 2015-02-11 19:55:09
運行調試程序並檢查確切值是什麼。正如@evanwong提到的 - 你可能會得到''null''而不是'null',這就是爲什麼其他條件被評估爲'true'的原因。如果你想打印確切的數據類型,試試'log.debug(q?.dump())',看看你是否得到'null'或'' –
2015-02-11 20:07:17