最近使用 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>