我想创建以下简单的MVP架构:
查看类似于vaadin布局,组件和样式的类.非功能性.该意见应与当前ViewScope/SessionScope,所以我使用@UIScope的https://github.com/peholmst/vaadin4spring
演示者应该注入视图,在视图组件上注册侦听器,处理用户输入并委托给模型服务
问题:当我将视图注入演示者时,视图会重新创建,因此演示者和视图不在同一范围内.所以绑定不起作用.我可以改变什么来实现上述设计?
@VaadinComponent
@UIScope
public class LoginView {
//form fields, buttons
}
@Controller
public class LoginPresenter implements ClickListener {
@Autowired
private LoginView view;
@PostConstruct
public void bind() {
view.getLoginButton().addClickListener(this);
}
@Override
public void buttonClick(ClickEvent event) {
//validate input and login
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用PollListener以下代码在vaadin中:
@VaadinUI
@PreserveOnRefresh
public class ApplicationUI extends UI {
@Override
protected void init(VaadinRequest request) {
setPollInterval(1000);
access(new Runnable() {
@Override
public void run() {
System.out.println("TEST POLL: " + counter++); //is only printed a single time
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
打开我的应用程序时,打印输出"TEST POLL 0"一次.但就是这样.我可能错过了什么?