1 快速上手

2 JFinalConfig

3 Controller

4 AOP

5 ActiveRecord

6 Enjoy 模板引擎

7 EhCachePlugin

8 RedisPlugin

9 Cron4jPlugin

10 Validator

11 国际化

12 Json 转换

13 JFinal架构及扩展

14 升级到 4.5

7.3 CacheInterceptor

? ? ?CacheInterceptor可以将action所需数据全部缓存起来,下次请求到来时如果cache存在则直接使用数据并render,而不会去调用action。此用法可使action完全不受cache相关代码所污染,即插即用,以下是示例代码:

@Before(CacheInterceptor.class)
public?void?list()?{
????List?blogList?=?Blog.dao.find("select?*?from?blog");
????User?user?=?User.dao.findById(getParaToInt());
????setAttr("blogList",?blogList);
????setAttr("user",?user);
????render("blog.html");
}

? ? 上例中的用法将使用actionKey作为cacheName,在使用之前需要在ehcache.xml中配置以actionKey命名的cache如:,注意actionKey作为cacheName配置时斜杠”/”不能省略。此外CacheInterceptor还可以与CacheName 注解配合使用,以此来取代默认的actionKey作为cacheName,以下是示例代码:

@Before(CacheInterceptor.class)
@CacheName("blogList")
public?void?list()?{
????List?blogList?=?Blog.dao.find("select?*?from?blog");
????setAttr("blogList",?blogList);
????render("blog.html");
}

? ? 以上用法需要在ehcache.xml中配置名为blogList的cache如: