<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 的 <s:action>
标记来使用 JPA API 从数据库中加载属于另一个对象(@OneToMany
关系)的元素列表。
问题是当我向这个列表中添加新元素时,<s:action>
在很长一段时间后都不会显示这些最近的对象(有点像缓存)。
我怎样才能显示最新的列表?
【问题讨论】:
同意 Dave 所说的可能是缓存的情况,并且在 UI 级别公开您的域数据意味着您面临一些意外行为的风险,最好将其与视图层分开。 【参考方案1】:这可能是浏览器缓存问题:不允许在该页面上缓存。
除此之外,我真的不提倡为此目的使用<s:action>
。 IMO 视图层应该尽可能地笨拙。
这种初始化工作属于动作或其服务之一,它更容易测试,并且不会遇到这个问题(或其他一些微妙的陷阱,但它们不会参与其中这个用例,我想)。
【讨论】:
谢谢,但出于学习目的,我认为这是一种服务器缓存,因为我从数据库中删除了一行数据,而 标签的结果仍然显示数据已删除。我我忘记了一些参数或配置? (我尝试了不同的浏览器并删除了缓存,我也在eclipse的控制台中看到了结果) @DanielFlores 您是否尝试清除浏览器缓存或关闭缓存? 可能您设置了一些数据缓存,但如果在写入后需要大量时间来更新,那么缓存就非常糟糕。 谢谢,(持久性缓存?)很长一段时间后我用 em.refresh ***.com/questions/5295386/… 解决了这个问题:(以上是关于<s:action> 不加载 OneToMany 列表的最新更新的主要内容,如果未能解决你的问题,请参考以下文章