Cause: org.apache.ibatis.ognl.NoSuchPropertyException: java.util.ArrayList.length

阅读数:213 评论数:0

跳转到新版页面

分类

python/Java

正文

一、问题解决方法

修改为如下即可:

<if test="enterpriseIds!=null and enterpriseIds.size>0">

因为集合用size,数组用length。

二、OGNL表达式

OGNL全称为Object-Graph Navigation Lauguage,使用它可以存取对象的属性和调用对象的方法,还可以迭代获取对象的Object-Graph。

https://commons.apache.org/proper/commons-ognl/language-guide.html

1、语法

(1)常量

字符串常量 使用单引号或双引号包裹
数字常量 int、long、float、double,BigDecimal数字加后缀b或B,BigInteger数字加后缀h或H
布尔常量 true 和 false
null  

(2)常用操作

操作 getValue()描述 setValue描述
e1,e2 e1,e2都会被执行,返回e2的值 e1会被执行,为e2设定值
e1=e2    
e1? e2: e3    
e1||e2或者e1 or e2    
e1&&e2或者e1 and e2    
e1|e2 或e1 bor e2 (按位或)    
e1^e2 或 e1 xor e2 (按位异或)    
e1&e2 或 e1 band e2 (按位与)    
e1==e2或e1 eq e2    
e1!=e2或 e1 neq e2    
e1<e2 , e1 lt e2    
e1<=e2, e1 lte e2    
e1>e2, e1 gt e2    
e1>=e2, eq gte e2    
e1 in e2    
e1 not in e2    
e1<<e2, e1 shl e2 (左移)    
e1>>e2, e1 shr e2 (右移)    
e1>>>e2, e1 ushr e2 (逻辑右移)    
e1+e2    
e1-e2    
e1*e2    
e1/e2    
e1%e2    
+e (加一)    
-e    
!e,not e(取反)    
~e(按位取反)    
e instance of class    
e.method(args)    
e.property    
e1[e2]    

e1.{e2} 从集合e1获取符合e2的元素

   
#variable    
@class@method(args) 静态方法引用    
@class@field 静态属性引用    
返回字符串列表
objects.{ #this instanceof String ? #this : #this.toString()}
返回ActionListener列表
listeners.{? #this instanceof ActionListener}
返回符合条件的第一个
objects.{^ #this instanceof String }
返回符合条件的最后一个
objects.{$ #this instanceof String }



相关推荐

出现这个错误,是因为mybatis默认OGNL解析参数,所以会自动采用对象树形式取String.xxx值。 解决方法: 方法1:在方法中提前定义 <pre c

&lt;if test="extraSql != null and extraSql !=''"&gt; AND ${ext

一、概述 mybatis原来是apache的一个开源项目,叫做ibatis,2010年由apache迁移到了google code,并且改名为mybatis。2013年迁移到github。 mybat

(1)Executor 执行增删改查操作

实际开发中,有时候需要把当前插入的数据id取出来,但又不想再去查一遍. mybatis提供了两种返回insert方法后的主键的方法 : 1、根据useGeneratedKeys获取

一、概述 一个项目使用多个数据库(无论是主从复制--读写分离还是分布式数据库结构)的重要性变得越来越明显,整合的多数据源有两种方式:分包和aop。 1、SqlSessionTemplate SqlSe

背景: 之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。 为了想让一套代码即可

1、使用selectKey标签 &lt;insert id="addLoginLog" parameterTyp

依靠数据库锁是非常安全的方式,比方说,分布式定时任务,除了使用quartz不让各个机器上同时跑一个定时任务之外,最好在数据库也加一个保险。插入一条数据之前,判断表中有没有这条数据,如果没有才插入

原因很简单,就一句话,是不是resultType 和resultMap 弄混了? &nbsp; 大致的意思就是无法找到返回值对应的r