最近使用 Mybatis 遇到了一個奇怪的問題,前端傳了一個數字字元串(type = "1") ,我做了如下判斷:
<if test=" type == '1' ">
</if>
就這樣系統無情的告訴我這樣無法被解析,原因是字元串和數字無法判斷相等!Are you kidding me?我這明明寫的是字元串呀!
後來,跟蹤了下源碼,發現 '1' 确實被直接當成數字處理了,查閱了一些資料,原來 MyBatis 是使用的 OGNL表達式來進行解析的,是以單個的字元要寫到雙引号裡面才行,那麼要怎麼寫呢?
可以這樣寫:
<if test=' type == "1" '>
</if>
或者這樣寫:
<if test="type == '1'.toString()">
</if>