我想用spring开发一个应用程序。用户应该能够登录并查看特定于uer的页面。我从一个不同的浏览器窗口来到这个网站,如果用户还在登录,那就方便了,所以保留会话。
现在我想知道为此目的使用的范围是什么?Vaadin和Spring提供@Scope("session")、@Scope("ui")和@Scope("prototype")。我应该把我所有的*视图和*演示者类放在session范围内吗?
还是最好用prototype来记录视图,以便每次更改页面时都用更新的数据重新创建页面?在这种情况下,主持人应该仍然是会话范围,还是也是原型?
或者我应该使用ui引导插件提供的vaadin4spring范围吗?然后,这将为每个新选项卡创建一个新的"uiSession“。
@Scope("session")
class MyPresenter {
//each view should be wired to a presenter
@Autowired
private MyView view;
}
@Scope("prototype") //"session", "ui"?
class MyView extends VerticalLayout {
@PostConstruct
public void init() {
addComponent(new Label("time is: " + new Date()));
}
}发布于 2014-05-20 09:03:34
vaadin在会话中存储(大量)状态。状态几乎是任何东西,对浏览器中的客户机来说是可见的。如果涉及到任何组件,则应该使用ui作用域。即使ui和session看起来是一样的,您也应该坚持使用ui来防止竞争,更糟糕的是,对于vaadin代码来说也是如此。
在上面的例子中,视图是明确的ui,因为它是一个组件。这使得演示者ui也保持了对ui作用域组件的引用,并且肯定会访问来自它的事件或读取数据等。
https://stackoverflow.com/questions/23672319
复制相似问题