在我的当前项目中,JSP变得越来越庞大(许多jstl end el逻辑,没有Java),并且由于流量增加,在许多级别上进行缓存已成为必需。某些组件需要是动态的,因此我们将无法使用基于过滤器的解决方案。不幸的是,逻辑使用了很多自定义标签,而且几乎没有使用过包含,因此SimplePageFragmentCachingFilter
也无济于事。
我正在寻找的是这样的:
<ehcache:cache key="${myApp.cacheKey}">
<many />
<jsp />
<tags />
<here />
</ehcache:cache>
此标记将公开pageContext.out
的虚拟编写器并将该编写器刷新到缓存,页面和后续请求将直接从缓存写入pageContext.out
。
是否存在这样的野兽?
提示:我知道我们应该改变设计,减少JSP中的逻辑等。不幸的是,它不会发生。我不是在这里作出决定的人,所以请不要去那里。哦,并且:是的,我用Google搜索了它。
答案 0 :(得分:5)
现有两个标记库:Jakarta Cache和OpenSymphony OSCache。两者都被修复,Jakarta Cache库无法下载,但您仍然可以下载OSCache库here:OSCache 2.4。
它应该按如下方式使用(在您以常规方式将JAR放入/WEB-INF/lib
之后):
<%@taglib prefix="oscache" uri="http://www.opensymphony.com/oscache" %>
...
<oscache:cache key="${myApp.cacheKey}">
<many />
<jsp />
<tags />
<here />
</oscache:cache>
答案 1 :(得分:3)
我做了这样的事:https://github.com/psiegman/ehcachetag
尚未在生产系统上使用它,但它具有不错的代码覆盖率。
答案 2 :(得分:0)
我相信答案是否定的,这样的野兽不存在。
答案 3 :(得分:0)
这是一个增强请求 http://jira.terracotta.org/jira/browse/CDV-1617 我建议投票。