JFinal 在线手册


版本: 2.2

作者: 詹波 日期: 2016-01-19

官网地址:http://www.jfinal.com


kl博主整理制作:http://www.kailing.pub


目录


  0 章 极速体验 Model Bean 合体 6

0.1 极速体验 Generator 6

0.2 相关生成文件 6

0.3 Model Bean 合体后主要优势 7

0.4 Model Bean 合体后注意事项 7


  第一章 快速上手 8

1.1 创建项目 8

1.2 放入 JFinal 库文件 11

1.3 修改 web.xml 11

1.4 添加 java 文件 11

1.5 启动项目 12

1.6 开启浏览器看效果 13

1.7 Maven 下开发 14


  第二章 JFinalConfig 15

2.1 概述 15

    1. configConstant(Constants me) 15

    2. configRoute(Routes me) 15

    3. configPlugin (Plugins me) 18

    4. configInterceptor (Interceptors me) 18

    5. configHandler (Handlers me) 18

    6. afterJFinalStart()beforeJFinalStop() 19

    7. PropKit 19


  第三章 Controller20

3.1 概述 20

    1. Action 20

    2. getPara 系列方法 20

    3. getModel getBean 系列方法 21

    4. setAttr 方法 22

    5. getFile 文件上传 23

    6. renderFile 文件下载 23

    7. session 操作方法 23

3.9 render 系列方法 23

第四章 AOP 26

4.1 概述 26

    1. Interceptor 26

    2. Before 27

    3. Clear 28

    4. Interceptor 的触发 30

    5. DuangEnhancer 31

    6. Inject 拦截器 31

第五章 ActiveRecord 33

5.1 概述 33

    1. ActiveRecordPlugin 33

    2. Model 33

    3. JavaBean Model 合体 35

    4. JFinal 独创 Db + Record 模式 35

5.6 声明式事务 36

5.7 Cache 37

5.8 Dialect 多数据库支持 37

5.9 表关联操作 38

5.10 复合主键 39

5.11 Oracle 支持 39

5.12 多数据源支持 41

5.13 web 环境下使用 ActiveRecord 43

第六章 EhCachePlugin 44

6.1 概述 44

    1. EhCachePlugin 44

    2. CacheInterceptor 44

    3. EvictInterceptor 45

    4. CacheKit 45

    5. ehcache.xml 简介 46

第七章 RedisPlugin 47

7.1 概述 47

    1. RedisPlugin 47

    2. Redis Cache 47

    3. web 环境使用 RedisPlugin 48

第八章 Validator 49

8.1 概述 49

    1. Validator 49

    2. Validator 配置 49

第九章 国际化 51

9.1 概述 51

9.2 I18n Res 51

9.3 I18nInterceptor 52

第十章 FreeMarker 基础 54

10.1 概述 54

10.2 FreeMarker 示例 54

10.3 JFinal 中扩展 54

第十一章 JFinal 架构及扩展 55

11.1 概述 55

11.2 架构 55





摘要

JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代 码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时 再拥有 rubypythonphp 等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋 友 : )

JFinal 有如下主要特点:

MVC 架构,设计精巧,使用简单

遵循 COC 原则,零配置,无 xml

独创 Db + Record 模式,灵活便利

ActiveRecord 支持,使数据库开发极致快速

自动加载修改后的 java 文件,开发过程中无需重启 web server

AOP 支持,拦截器配置灵活,功能强大

Plugin 体系结构,扩展性强

以上步骤 I18nInterceptor 中的变量名”_locale””_res”都可以在创建 I18nInterceptor 对象时 进行指定,不指定时将使用默认值。还可以通过继承 I18nInterceptor 并且覆盖 getLocalParagetResNamegetBaseName 来定制更加个性化的功能。

在有些 web 系统中,页面需要国际化的文本过多,并且 css 以及 html 也因为国际化而 大不相同,对于这种应用场景先直接制做多套同名称的国际化视图,并将这些视图以 locale 为 子目录分类存放,最后使用 I18nInterceptor 拦截器根据 locale 动态切换视图,而不必对视图中 的文本逐个进行国际化切换,只需将 I18nInterceptor.isSwitchView 设置为 true 即可,省时省力。


第十章 FreeMarker 基础


10.1 概述


JFinal 默认使用 FreeMarker 作为 View,为了使 eclipse jee 能正确识别 html,所以默认使 用”.html”作为 FreeMarker 视图文件的扩展名(原为”.ftl”)

如果需要使用 JSP 作为默认视图需要在 configConstant(Constants me)方法中进行配置,见 如下配置:


public void configConstant(Constants me) { me.setDevMode(true); me.setViewType(ViewType.JSP);

}


    1. FreeMarker 示例


      以下代码为 FreeMarker 经常使用的指令与插值:


      <table>

      <#list userList as user>

      <tr>

      <td>${user.name}</td>

      <td>${user.age}</td>

      <td>${user.email}</td>

      </tr>

      </#list>

      </table>

      以上代码将 userList 中的 user 对象循环输出。


    2. JFinal 中扩展


可以通过 FreeMarkerRender.getConfiguration().setSharedVariable(“myKit”, new MyKit())

FreeMarker 设置共享工具类,在 view 中使用 ${myKit.method(para)}

第十一章 JFinal 架构及扩展


11.1 概述


JFinal 采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。JFinal HandlerInterceptorControllerRenderPlugin 五大部分组成。本章将简单介绍此架构以 及基于此架构所做的一些较为常用的扩展。


11.2 架构


JFinal 顶层架构图如下:


image


未完待续 ……

JFinal 官方网站:http://www.jfinal.com

JFinal 官方 QQ : 322076903432462639

JFinal 官方微信:


image