这是一个创建于 1507 天前的主题,其中的信息可能已经有所发展或是发生改变。
开发的时候碰到了一个坑,就是 mybatis 会认为 bool 类型的 false 等于空字符串.具体就是如果一个 bool 类型的变量 a=false,那么 a == '' 这个表达式的值是 true,网上找也找到了其他人发的博客说明这个坑是因为 ognl 的语法
为了验证,我亲自 debug 了一下, 使用的 mybatis 的 jar 包的坐标是 group: org.mybatis , artifact: mybatis ,version: 3.28
但是 debug 到 org.apache.ibatis.scripting.xmltags.OgnlCache 这个类的 getValue 方法里面,发现方法里面用了 Ognl 这个类,import 的是 ognl.Ognl 这个类,但是我进入 Ognl.getValue 这个方法的时候发现,实际上执行的是 org.apache.ibatis.ognl.Ognl.getValue 这个方法,但是 OgnlCache 里面并没有 import 这个类,更加奇怪的是,我对比了一下 mybatis 的源码包和已经编译好的 jar 包,发现源码包里面并没有 org.apache.ibatis.ognl.Ognl 这个类,甚至连 ognl 这个目录都没有,但是编译好的 jar 包里面就有这个类,
描述的有点乱,不知道有没有大佬能解释下
4 条回复 • 2020-03-16 09:13:26 +08:00
|
|
1
fdgdbr 2020-03-13 17:40:24 +08:00
version 是 3.2.8,不是 3.28
|
|
|
2
coer 2020-03-14 00:14:43 +08:00 via Android
诡异的事情发生了
|
|
|
3
Bromine0x23 2020-03-14 00:36:54 +08:00 1
pom.xml 253-281 行
|
|
|
4
fdgdbr 2020-03-16 09:13:26 +08:00
|