Ahm*_*emi 2 spring vaadin vaadin7
当我用2个会话测试我的应用程序时,在一个浏览器中所有的东西都可以,而在另一个浏览器中我得到了异常
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@PreserveOnRefresh
@SpringComponent
public class TestUI extends UI {
@Autowired
MainLayout content;
@Autowired
DetailView detailView;
@Override
protected void init(VaadinRequest request) {
VaadinSession.setCurrent(VaadinSession.getCurrent());
Navigator navigator = new Navigator(this, detailView);
navigator.addView("tests", TestView.class);
setContent(content);
}
}
Run Code Online (Sandbox Code Playgroud)
java.lang.IllegalStateException:未锁定会话时无法从父项中删除.此外,还有另一个锁定会话,表示该组件可能即将从一个会话移动到另一个会话.at com.vaadin.ui.AbstractSingleComponentContainer.removeFromParent(AbstractSingleComponentContainer.java:175)at com.vaadin.ui.AbstractSingleComponentContainer.setContent(AbstractSingleComponentContainer.java:148)at com.vaadin.ui.UI.setContent(UI.java:1312) )
将Vaadin组件定义为Spring托管bean时,必须始终为这些组件定义非单一范围.例如:
@Component
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class MainLayout extends VerticalLayout {
Run Code Online (Sandbox Code Playgroud)
这是因为Vaadin组件只能有一个父组件.其他可能的范围是@UIScope和@ViewScope.
| 归档时间: |
|
| 查看次数: |
1666 次 |
| 最近记录: |