jActiveRecord-EL
是jActiveRecord的辅助项目,简化在EL表达式中访问数据的方法,做到像操作普通JavaBean
一样操作Record
和Table
类型的对象。适合采用了jActiveRecord
的Web
项目。
下载最新的jactiverecord.jar和jactiverecord-el.jar,添加如下信息到web.xml
:
<listener>
<listener-class>me.zzp.ar.el.ResolverSetup</listener-class>
</listener>
假设Record
实例user
有一个字符串类型的属性name
,如果不使用jActiveRecord-EL
,要在EL表达式中获得该属性的值,方法是:
<h1>${user.get("name")}</h1>
采用jActiveRecord-EL
之后,方法是:
<h1>${user.name}</h1>
jActiveRecord-EL
简化了在EL表达式中访问Record
属性的方法,能像访问JavaBean
属性一样地访问Record
的数据。
jActiveRecord-EL
同样简化了访问Table
对象的方法,支持all
、first
、last
和索引四种查询方式:
all
:调用Table#all()
。即${User.all}
等价于${User.all()}
first
:调用Table#first()
。即${User.first}
等价于${User.first()}
last
:调用Table#last()
。即${User.last}
等价于${User.last()}
索引
:调用Table#find(int id)
。即${User[1]}
等价于${User.find(1)}
注意 ${User[1]}
与${User.all[1]}
的意义并不相同,前者返回表中id
等于1的记录;后者返回所有记录(all)中第二条记录(索引从0开始)。
JavaBean
属性的命名规则为骆驼命名法,例如“createdAt”;而数据库表的字段通常采用下划线命名法,例如“created_at”。
开启了自动转换开关后就能将采用骆驼命名法的属性名自动转换成下划线命名法,即${user.created_at}
与${user.createdAt}
等价。在web.xml
中添加如下上下文参数即可开启该选项:
<context-param>
<param-name>jactiverecord-el-camel-case</param-name>
<param-value>true</param-value>
</context-param>