# jactiverecord-el **Repository Path**: tomlin/jactiverecord-el ## Basic Information - **Project Name**: jactiverecord-el - **Description**: 增强JSP的EL表达式,能像访问普通JavaBean一样访问Record和Table - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: http://github.com/redraiment/jactiverecord-el - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2016-03-09 - **Last Updated**: 2024-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jActiveRecord-EL `jActiveRecord-EL`是[jActiveRecord](https://github.com/redraiment/jactiverecord)的辅助项目,简化在EL表达式中访问数据的方法,做到像操作普通`JavaBean`一样操作`Record`和`Table`类型的对象。适合采用了`jActiveRecord`的`Web`项目。 * 项目主页:[http://github.com/redraiment/jactiverecord-el](http://github.com/redraiment/jactiverecord-el) * javadoc:[http://zzp.me/jactiverecord-el/](http://zzp.me/jactiverecord-el/) * jActiveRecord:[http://github.com/redraiment/jactiverecord](http://github.com/redraiment/jactiverecord) `jActiveRecord-EL`同样使用`Maven`管理,在`pom.xml`中添加如下依赖即可: ```xml me.zzp jactiverecord-el 1.2 ``` # 访问Record属性 假设`Record`实例`user`有一个字符串类型的属性`name`,如果不使用`jActiveRecord-EL`,要在EL表达式中获得该属性的值,方法是: ```xml

${user.get("name")}

``` 采用`jActiveRecord-EL`之后,方法是: ```xml

${user.name}

``` `jActiveRecord-EL`简化了在EL表达式中访问`Record`属性的方法,能像访问`JavaBean`属性一样地访问`Record`的数据。 # 访问Table方法 `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开始)。 # 配置 ## 增强EL表达式 要使用jActiveRecord-EL,需要在`web.xml`中添加如下信息: ```xml me.zzp.ar.el.ResolverSetup ``` ## 骆驼命名法(可选) `JavaBean`属性的命名规则为骆驼命名法,例如“createdAt”;而数据库表的字段通常采用下划线命名法,例如“created_at”。该选项默认开启,即`${user.created_at}`与`${user.createdAt}`等价。在`web.xml`中添加如下上下文参数即可关闭自动转换开关: ```xml jactiverecord-el-camel-case false ``` ## 创建数据库对象(可选) 在`web`项目中使用`jActiveRecord`,通常第一步就是通过数据源(`javax.sql.DataSource`)创建数据库对象(`me.zzp.ar.DB`)。因此`jActiveRecord-EL`提供了另一个上下文监听器,在启动服务器的时候自动创建数据库对象,并添加到上下文对象的属性中,设置方法如下: ```xml me.zzp.ar.el.DatabaseSetup jactiverecord-el-data-source java:/comp/env/jdbc/DataSource ``` ## 重命名属性名(可选) `DatabaseSetup`创建的上下文属性名默认为“dbo”,即在`Servlet`中通过`getServletContext().getAttribute("dbo")`获得数据库对象。如果你不喜欢“dbo”这个名字,可指定以下信息自定义属性名: ```xml jactiverecord-el-attribute-name database ``` 这样,属性名就改成了database。