根據提示的信息,我們很容易知道是數據格式化的時候出了問題,不過為什么哪?我們定義的沒有錯呀!傳遞的也沒有錯呀!是OGNL的語法問題,這里'Y'將被認為是char類型的數據,但是'YY'或者“Y”將被認為是String類型的數據
解決方案如下所示:
1:將代碼改為test="param eq 'Y'.toString()"
2:將代碼改為test="name == "Y""
3:將代碼改為test='index == "Y"'
當對象的映射文件及對應的屬性如下編寫時,<result column="IF_SHIELD" property="ifShield" jdbcType="VARCHAR" /> private String ifShield;
<if test="ifShield==1">是沒問題的(並且數字是全部沒問題的,無論是小數還是整數是正數還是負數),不過這樣編寫<result column="IF_SHIELD" property="ifShield" jdbcType="CHAR" /> private String ifShield;
<if test="ifShield==1">就是有問題的。
最簡單的是把‘Y’改成“Y”,單引號改成雙引號,雙引號的內容默認為String類型