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