2012-02-14 45 views
0

是否有像@PostConstruct这样的注释,用于恢复视图后应该调用的方法?我想每次请求刷新一次数据。任何想法如何做到这一点?恢复视图后刷新数据

回答

2

不是注释,但可以使用<f:event type="preRenderView">

<f:event type="preRenderView" listener="#{bean.refresh}" /> 

public void refresh() { 
    // ... 
} 

然而,我不知道这是否豆不能更好地被放置在请求范围,因为它似乎举行请求范围的数据也是如此。也许你需要把bean分成不同范围的两个bean,其中一个是请求范围,它包含你需要在每个请求中刷新的数据。

+0

分裂将是可能的,这是一个很好/常见的做法? – wutzebaer 2012-02-14 12:55:19

+0

良好做法?这只是有意义的。为什么你会将请求范围数据存储在会话范围中?当用户在同一会话中的不同浏览器窗口/选项卡中请求页面并在切换它们时与它们交互时,它只会对用户体验造成负面影响。使用相同的范围作为数据所属。另见http://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/7031941#7031941 – BalusC 2012-02-14 12:57:14

+0

我有一个实体,应该刷新每次用户重新加载页面,但是当我的处理程序beand将被请求作用域时,它会忘记用户选择哪个实体 – wutzebaer 2012-02-14 13:01:49