只是一个关于Vaadin的问题,我搜索了很多,但没有找到有用的信息。
我需要知道UI是否在没有@PreserveOnRefresh注解集的情况下被刷新(这意味着覆盖UI.refresh()对我不起作用)。
基本上,我有一个Map,它将用户会话id映射到浏览器中打开的UI,当检测到新的UI时,我需要将其添加到当前会话的UI集合中。
如果用户在浏览器中请求相同的UI (由Servlet @WebServlet配置映射的相同UI实现),当且仅当它是在浏览器的另一个窗口或另一个选项卡中打开的UI时,我需要添加该UI,并且如果浏览器窗口被刷新,我需要什么也不做,或者最好是删除旧UI并放入新UI。
我知道如果我向UI添加一个@PreservOnRefresh注解,这将会起作用(但同样,我需要UI不可保留)。
那么我如何才能真正做到这一点呢?我发现这个实现(对我来说有点丑陋)是-> http://dev.vaadin.com/ticket/12191#trac-change-5-1374239207261117
有没有其他可能的方法来做到这一点?
感谢您的关注!
发布于 2016-08-31 18:33:05
只需覆盖UI
类中refresh()
方法即可。它适用于@PreserveOnRefresh
,因此您不必重新初始化您的UI实例。
@Override
protected void refresh(VaadinRequest request) {
super.refresh(request);
// TODO do your thing here
}
https://stackoverflow.com/questions/27410868
复制相似问题