在EL表達式中,假設某個entity的status屬性為char類型,此處假設為'1',在jsp中,對於${entity.status=='1'},我們預期的結果是true,但實際上是false - -! why?是這樣的,EL表達式比較偷懶,把char類型數據做了自動轉型,所以上面的EL換一種寫法 ...
在EL表達式中,假設某個entity的status屬性為char類型,此處假設為'1',在jsp中,對於${entity.status=='1'},我們預期的結果是true,但實際上是false - -! why?是這樣的,EL表達式比較偷懶,把char類型數據做了自動轉型,所以上面的EL換一種寫法就是${49=='1'},其中49是字元'1'進行ASCII轉換後的結果,如此當然是false啦。 為了避免這種問題,實體屬性應該儘量設置為String類型,還有一種不夠優雅的解決方法就是使用'1'.charAt(0),類似這樣:
${entity.status=='1'.charAt(0)}
以下是國外網友碰到的類似問題: http://stackoverflow.com/questions/10542875/char-comparison-in-el-expression