天天看點

Mybatis 條件判斷單雙引号解析問題

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