java – Vaadin中用于Spring UI的SpringViewProvider
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Vaadin中用于Spring UI的SpringViewProvider,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1671字,纯文字阅读大概需要3分钟。
内容图文
我试图在我的vaadin应用程序中实现spring视图,但是我在SpringViewProvider上获得了一个NPE(“无法添加空视图提供程序”).这是我的代码:
@SpringUI(path = "permalink")
@Theme("myTheme")
public class PermalinkUI extends UI {
@Autowired
private SpringViewProvider springViewProvider;
private Navigator navigator;
@Override
protected void init(VaadinRequest request) {
final VerticalLayout root = new VerticalLayout();
root.setSizeFull();
root.setMargin(true);
root.setSpacing(true);
setContent(root);
final Panel viewContainer = new Panel();
viewContainer.setSizeFull();
root.addComponent(viewContainer);
root.setExpandRatio(viewContainer, 1.0f);
navigator = new Navigator(this, viewContainer);
navigator.addProvider(springViewProvider);
setNavigator(navigator);
setContent(root);
我还尝试使用ViewDisplay而不是单个组件容器(root),但结果相同.我还实现了一个测试视图来导航到:
@SpringView(name = "test")
public class PermalinkTest extends VerticalLayout implements View {
@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
removeAllComponents();
String params = event.getParameters();
addComponent(new Label(params));
}
}
我在写这个URL“localhost:8080 / permalink / test时得到这个NPE.
我错过了什么? SpringViewProvider不应该自动装配吗?
关心约翰
解决方法:
使用vaadin-spring-2.0.0时,SpringNavigator是一个托管的@UIScope-ed bean,因此可以直接注入. (如果你不需要,你根本不需要注入SpringViewProvider.)
此外,您必须手动初始化SpringNavigator实例以防止NullPointerException:
@SpringUI
public class SampleUi extends UI {
@Inject
private SpringNavigator navigator;
@Override
protected void init(VaadinRequest request) {
navigator.init(this, this); // Explicit init() call
navigator.navigateTo(StartView.NAME);
}
}
内容总结
以上是互联网集市为您收集整理的java – Vaadin中用于Spring UI的SpringViewProvider全部内容,希望文章能够帮你解决java – Vaadin中用于Spring UI的SpringViewProvider所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。