<s:action> 不加载 OneToMany 列表的最新更新

Posted

技术标签:

【中文标题】<s:action> 不加载 OneToMany 列表的最新更新【英文标题】:<s:action> doesn't load latest updates of a OneToMany List 【发布时间】:2011-11-24 00:25:59 【问题描述】:

我正在使用 struts 的 &lt;s:action&gt; 标记来使用 JPA API 从数据库中加载属于另一个对象(@OneToMany 关系)的元素列表。

问题是当我向这个列表中添加新元素时,&lt;s:action&gt; 在很长一段时间后都不会显示这些最近的对象(有点像缓存)。

我怎样才能显示最新的列表?

【问题讨论】:

同意 Dave 所说的可能是缓存的情况,并且在 UI 级别公开您的域数据意味着您面临一些意外行为的风险,最好将其与视图层分开。 【参考方案1】:

这可能是浏览器缓存问题:不允许在该页面上缓存。

除此之外,我真的不提倡为此目的使用&lt;s:action&gt;。 IMO 视图层应该尽可能地笨拙。

这种初始化工作属于动作或其服务之一,它更容易测试,并且不会遇到这个问题(或其他一些微妙的陷阱,但它们不会参与其中这个用例,我想)。

【讨论】:

谢谢,但出于学习目的,我认为这是一种服务器缓存,因为我从数据库中删除了一行数据,而 标签的结果仍然显示数据已删除。我我忘记了一些参数或配置? (我尝试了不同的浏览器并删除了缓存,我也在eclipse的控制台中看到了结果) @DanielFlores 您是否尝试清除浏览器缓存或关闭缓存? 可能您设置了一些数据缓存,但如果在写入后需要大量时间来更新,那么缓存就非常糟糕。 谢谢,(持久性缓存?)很长一段时间后我用 em.refresh ***.com/questions/5295386/… 解决了这个问题:(

以上是关于<s:action> 不加载 OneToMany 列表的最新更新的主要内容,如果未能解决你的问题,请参考以下文章

struts2框架s:action标签无效原因

Struts2框架之-Struts2的标签

查询过的问题

如何在 Typescript 中编写严格要求其参数的函数类型

如何在一个 JPQL 查询中使用多个 JOIN FETCH

Maven项目下导入jstl标签后,jsp文件加载依然加载不出来问题解决