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