【发布时间】:2013-11-19 21:20:38
【问题描述】:
我向现有类 (MyClass) 添加了一个新的布尔字段 (myFlag)。
在 JSP 方面,我添加了以下代码(myClassObject 作为请求属性传递)。
<span onclick="toggleMyFlag()">
<c:choose>
<c:when test="${myClassObject.myFlag}">
<c:out value="TRUE" />
</c:when>
<c:otherwise>
<c:out value="FALSE" />
</c:otherwise>
</c:choose>
</span>
当span被点击时,实体上的标志被成功切换(我可以查看数据库中的变化等)。
但是,当页面重新加载时,TRUE 或 FALSE 输出没有正确更新(它们保持不变)。刷新页面不起作用。注销并重新登录不会。并且关闭浏览器不会。它似乎修复自己的唯一方法是重新启动本地服务器。
我尝试了以下方法,但没有成功。
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
我还在查询中尝试了以下方法,但还是没有运气。
query.setHint(QueryHints.REFRESH, HintValues.TRUE);
然后我发现,如果我将以下属性(persistence.xml)更改为 false,则该功能起作用。
<property name="eclipselink.cache.shared.default" value="true"/>
但是,我不想像那样关闭所有缓存。
我对 EclipseLink 一无所知,所以我想知道是否可以只为 MyClass 关闭缓存。
【问题讨论】:
标签: java jsp caching eclipselink