JFinal 手册
版本: 3.2
作者: 詹波
日期: 2017-08-05
http://www.jfinal.com
目录
第一章 快速上手 ............................................................................................................................................... 8
1.1 创建项目 .................................................................................................................................................. 8
1.2 放入 JFinal 库文件 ................................................................................................................................. 10
1.3 修改 web.xml ......................................................................................................................................... 10
1.4 添加 java 文件 ....................................................................................................................................... 10
1.5 启动项目 ................................................................................................................................................ 11
1.6 开启浏览器看效果 ................................................................................................................................ 12
1.7 Maven 下开发 ......................................................................................................................................... 12
1.8 IDEA 下开发 ............................................................................................................................................ 13
1.9 特别声明 ................................................................................................................................................ 13
第二章 JFinalConfig .......................................................................................................................................... 14
2.1 概述 ........................................................................................................................................................ 14
2.2 configConstant(Constants me) ................................................................................................................ 14
2.3 configRoute(Routes me) .......................................................................................................................... 14
2.4 configEngine(Engine me) ......................................................................................................................... 17
2.5 configPlugin (Plugins me) ........................................................................................................................ 18
2.6 configInterceptor (Interceptors me) ....................................................................................................... 18
2.7 configHandler (Handlers me) .................................................................................................................. 18
2.8 afterJFinalStart()与 beforeJFinalStop() .................................................................................................... 19
2.9 PropKit ..................................................................................................................................................... 19
第三章 Controller ............................................................................................................................................. 20
3.1 概述 ........................................................................................................................................................ 20
3.2 Action ....................................................................................................................................................... 20
3.3 Action 带参 .............................................................................................................................................. 20
3.4 getPara 系列方法 .................................................................................................................................... 22
3.5 getBean 与 getModel 系列方法 ............................................................................................................. 23
3.6 setAttr 方法 ............................................................................................................................................. 25
3.7 getFile 文件上传 ..................................................................................................................................... 25
3.8 renderFile 文件下载 ............................................................................................................................... 25
3.9 session 操作方法 .................................................................................................................................... 25
3.10 render 系列方法 ................................................................................................................................... 26
第四章 AOP ...................................................................................................................................................... 28
4.1 概述 ........................................................................................................................................................ 28
4.2 Interceptor ............................................................................................................................................... 28
4.3 Before ...................................................................................................................................................... 29
4.4 Clear ......................................................................................................................................................... 30
4.5 Interceptor 的触发 .................................................................................................................................. 31
4.6 Duang、Enhancer ................................................................................................................................... 32
4.7 Inject 拦截器 ........................................................................................................................................... 33
4.8 Routes 级别拦截器 ................................................................................................................................. 33
第五章 ActiveRecord ........................................................................................................................................ 35
5.1 概述 ........................................................................................................................................................ 35
5.2 ActiveRecordPlugin .................................................................................................................................. 35
5.3 Model....................................................................................................................................................... 35
5.4 JFinal 独创 Db + Record 模式 ................................................................................................................. 37
5.5 paginate 分页支持 .................................................................................................................................. 38
5.6 声明式事务 ............................................................................................................................................ 39
5.7 Cache ....................................................................................................................................................... 40
5.8 Dialect 多数据库支持 ............................................................................................................................. 40
5.9 表关联操作 ............................................................................................................................................ 40
5.10 复合主键 .............................................................................................................................................. 41
5.11 Oracle 支持 ........................................................................................................................................... 42
5.11 Sql 管理与动态生成 ............................................................................................................................. 44
5.11.1 基本配置 ....................................................................................................................................... 44
5.11.2 sql 指令 .......................................................................................................................................... 45
5.11.3 para 指令 ........................................................................................................................................ 45
5.11.4 namespace 指令 ............................................................................................................................. 47
5.11.5 分页用法 ....................................................................................................................................... 47
5.11.6 高级用法 ....................................................................................................................................... 48
5.11.7 最佳实践 ....................................................................................................................................... 49
5.12 多数据源支持 ...................................................................................................................................... 52
5.13 任意环境下使用 ActiveRecord............................................................................................................ 53
5.14 Generator 与 JavaBean ......................................................................................................................... 54
第六章 Template Engine .................................................................................................................................. 57
6.1 概述 ........................................................................................................................................................ 57
6.2 configEngine ............................................................................................................................................ 57
6.3 表达式 .................................................................................................................................................... 59
6.3.1 与 java 规则基本相同的表达式..................................................................................................... 59
6.3.2 属性访问 ......................................................................................................................................... 59
6.3.3 方法调用 ......................................................................................................................................... 60
6.3.4 静态属性访问 ................................................................................................................................. 60
6.3.5 静态方法调用 ................................................................................................................................. 61
6.3.6 空合并安全取值调用操作符 ......................................................................................................... 61
6.3.7 单引号字符串 ................................................................................................................................. 62
6.3.8 相等与不等比较表达式增强 ......................................................................................................... 62
6.3.9 布尔表达式增强 ............................................................................................................................. 63
6.3.10 范围数组定义表达式 ................................................................................................................... 63
6.3.11 Map 定义表达式 ............................................................................................................................ 64
6.3.12 逗号表达式 ................................................................................................................................... 64
6.3.13 从 java 中去除的运算符 .............................................................................................................. 64
6.4 指令 ........................................................................................................................................................ 64
6.4.1 输出指令#( ) .................................................................................................................................... 65
6.4.2 if 指令 ............................................................................................................................................... 66
6.4.3 for 指令 ............................................................................................................................................ 66
6.4.4 set 指令 ............................................................................................................................................ 68
6.4.5 include 指令 ..................................................................................................................................... 69
6.4.6 render 指令 ...................................................................................................................................... 70
6.4.7 define 指令 ....................................................................................................................................... 70
6.4.8 模板函数调用 ................................................................................................................................. 72
6.4.9 date 指令 .......................................................................................................................................... 73
6.4.10 指令扩展 ....................................................................................................................................... 74
6.5 注释 ........................................................................................................................................................ 76
6.6 非解析块 ................................................................................................................................................ 76
6.7 Shared Method 扩展 ............................................................................................................................... 76
6.8 Shared Object 扩展 ................................................................................................................................. 77
6.9 Extension Method 扩展 .......................................................................................................................... 78
6.10 Spring 整合 ............................................................................................................................................ 79
6.10.1 Spring MVC 整合 ............................................................................................................................ 80
6.10.2 Spring Boot 整合 ............................................................................................................................ 80
6.11 任意环境下使用 Engine ...................................................................................................................... 81
6.11.1 基本用法 ....................................................................................................................................... 81
6.11.2 进阶用法 ....................................................................................................................................... 81
6.11.3 Engine 对象管理 ............................................................................................................................ 82
第七章 EhCachePlugin ..................................................................................................................................... 84
7.1 概述 ........................................................................................................................................................ 84
7.2 EhCachePlugin ......................................................................................................................................... 84
7.3 CacheInterceptor ..................................................................................................................................... 84
7.4 EvictInterceptor ....................................................................................................................................... 85
7.5 CacheKit ................................................................................................................................................... 85
7.6 ehcache.xml 简介 .................................................................................................................................... 86
第八章 RedisPlugin .......................................................................................................................................... 87
8.1 概述 ........................................................................................................................................................ 87
8.2 RedisPlugin .............................................................................................................................................. 87
8.3 Redis 与 Cache......................................................................................................................................... 87
8.4 非 web 环境使用 RedisPlugin ............................................................................................................... 88
第九章 Cron4jPlugin ........................................................................................................................................ 89
9.1 概述 ........................................................................................................................................................ 89
9.2 Cron4jPlugin ............................................................................................................................................ 89
9.3 使用外部配置文件 ................................................................................................................................ 90
9.4 高级用法 ................................................................................................................................................ 91
第十章 Validator .............................................................................................................................................. 92
10.1 概述 ...................................................................................................................................................... 92
10.2 Validator ................................................................................................................................................ 92
10.3 Validator 配置 ....................................................................................................................................... 93
第十一章 国际化 ............................................................................................................................................. 94
11.1 概述 ...................................................................................................................................................... 94
11.2 I18n 与 Res ............................................................................................................................................ 94
11.3 I18nInterceptor ..................................................................................................................................... 95
第十二章 JFinal 架构及扩展 ........................................................................................................................... 97
12.1 概述 ...................................................................................................................................................... 97
12.2 架构 ...................................................................................................................................................... 97
第十三章 升级到 3.2 ....................................................................................................................................... 98
13.1 概述 ...................................................................................................................................................... 98
13.2 Ret.......................................................................................................................................................... 98
13.3 configEngine .......................................................................................................................................... 98
13.4 baseViewPath ........................................................................................................................................ 99
13.5 RenderFactory ..................................................................................................................................... 100
13.6 其它 .................................................................................................................................................... 100
摘要
JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代
码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时
再拥有 ruby、python、php 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋
友 : )
JFinal 有如下主要特点:
MVC 架构,设计精巧,使用简单
遵循 COC 原则,支持零配置,无 xml
独创 Db + Record 模式,灵活便利
ActiveRecord 支持,使数据库开发极致快速
极简、高性能 Template Engine,十分钟内掌握基本用法
自动加载修改后的 java 文件,开发过程中无需重启 web server
AOP 支持,拦截器配置灵活,功能强大
Plugin 体系结构,扩展性强
多视图支持,支持 FreeMarker、JSP、Velocity
强大的 Validator 后端校验功能
功能齐全,拥有 struts2 绝大部分核心功能
体积小仅 575K
强烈建议加入 JFinal 俱乐部,获取 JFinal 最佳实践项目源代码 jfinal-club,以最快的速
度、最轻松的方式掌握最简洁的用法,省去看文档的时间:http://www.jfinal.com/club
JFinal 官方 QQ 群: 用”jfinal”关键字搜索 QQ 群
JFinal 官方微信:
第一章 快速上手
1.1 创建项目
以最常用的 Eclipse 为例,推荐使用 Eclipse IDE for Java EE Developers 版本。
创建 Dynamic Web Project
填入项目基本信息
http://www.jfinal.com