×
JFinal 摘要

第0章 极速体验Model与Bean

0.1 极速体验 Generator0.2 JFinal相关生成文件0.3 Model 与 Bean 合体

第一章 快速上手

1.1 JFinal创建项目1.2 放入 JFinal 库文件1.3 修改 web.xml1.4 添加 java 文件1.5 JFinal启动项目1.6 开启浏览器看效果1.7 Maven 下开发

第二章 JFinalConfig

2.1 概述2.2 configConstant(Constants me)2.3 configRoute(Routes me)2.4 configPlugin (Plugins me)2.5 configInterceptor (Interceptors me)2.6 configHandler (Handlers me)2.7 afterJFinalStart()与 beforeJFinalStop()2.8 PropKit

第三章 Controller

3.1 概述3.2 Action3.3 getPara 系列方法3.4 getModel 与 getBean 系列方法3.5 setAttr 方法3.6 getFile 文件上传3.7 renderFile 文件下载3.8 session 操作方法3.9 render 系列方法

第四章 AOP

4.1 概述4.2 Interceptor4.3 Before4.4 Clear4.5 Interceptor 的触发4.6 Duang、Enhancer4.7 Inject 拦截器

第五章 ActiveRecord

5.1 概述5.2 ActiveRecordPlugin5.3 Model5.4 JavaBean 与 Model 合体5.5 JFinal 独创 Db + Record 模式5.6 声明式事务5.7 Cache5.8 Dialect 多数据库支持5.9 表关联操作5.10 复合主键5.11 Oracle 支持5.12 多数据源支持5.13 非 web 环境下使用 ActiveRecord

第六章 EhCachePlugin

6.1 概述6.2 EhCachePlugin6.3 CacheInterceptor6.4 EvictInterceptor6.5 CacheKit6.6 ehcache.xml 简介

第七章 RedisPlugin

7.1 概述7.2 RedisPlugin7.3 Redis 与 Cache7.4 非 web 环境使用 RedisPlugin第八章 Validator第九章 国际化第十章 FreeMarker 基础第十一章 JFinal 架构及扩展

4.4 Clear


拦截器从上到下依次分为 Global、Inject、Class、Method 四个层次,Clear 用于清除自身 所处层次以上层的拦截器。

Clear 声明在 Method 层时将针对 Global、Inject、Class 进行清除。Clear 声明在 Class 层时 将针对 Global、Inject 进行清除。Clear 注解携带参数时清除目标层中指定的拦截器。

Clear 用法记忆技巧:

l 共有 Global、Inject、Class、Method 四层拦截器

l 清除只针对 Clear 本身所处层的向上所有层,本层与下层不清除

l 不带参数时清除所有拦截器,带参时清除参数指定的拦截器


在某些应用场景之下,需要移除 Global 或 Class 拦截器。例如某个后台管理系统,配置了 一个全局的权限拦截器,但是其登录 action 就必须清除掉她,否则无法完成登录操作,以下是 代码示例:

// login方法需要移除该权限拦截器才能正常登录
@Before(AuthInterceptor.class)
public class UserController extends Controller {
	// AuthInterceptor 已被Clear清除掉,不会被其拦截
	@Clear
	public void login() {
	}
 
	// 此方法将被AuthInterceptor拦截
	public void show() {
	}
}

Clear 注解带有参数时,能清除指定的拦截器,以下是一个更加全面的示例:

@Before(AAA.class)
public class UserController extends Controller {
	@Clear
	@Before(BBB.class)
	public void login() {
	// Global、Class级别的拦截器将被清除,但本方法上声明的BBB不受影响
	}
 
	@Clear({AAA.class, CCC.class})// 清除指定的拦截器AAA与CCC
	@Before(CCC.class)
	public void show() {
	// 虽然Clear注解中指定清除CCC,但她无法被清除,因为清除操作只针对于本层以上的各层
	}
}



分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)