【发布时间】:2023-03-21 03:22:01
【问题描述】:
我有带有 vaadin 和 vaadin4spring 插件的 Spring Boot 应用程序。 在我的视图中,我想显示数据库中的数据。我要显示的数据由服务类中的方法返回。
@Service
public class UserService {
public List<Users> getUsers() ....
}
查看:
@SpringView(name = Views.USERLIST) //static constant containing string "users"
public class UserlistView extends HorizontalLayout implements View {
@Autowired
private UserService userService;
@PostConstruct
public void construct() {
displaytable(userService.getUsers());
}
@Override
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {}
}
UI class:
@SpringUI
@Theme("valo")
public class TUI extends UI {
@Autowired
private SpringViewProvider springViewProvider;
protected void init(VaadinRequest request) {
..
Navigator navigator = new Navigator(this, content);
navigator.addView(Views.USERLIST, UserlistView.class);
navigator.addProvider(springViewProvider);
}
}
在服务器启动期间 vaadin 识别 springview -“c.v.spring.navigator.SpringViewProvider : 1 SpringView found”,不显示异常或警告。
每次我使用导航器显示视图 (navigator.navigateTo("users")) 时,视图中的自动装配字段都不会注入,也不会调用后处理方法。如果我不将视图添加到导航器对象并使用 url 直接访问视图,那就更奇怪了 - localhost:8080/#!users 字段将被正确注入并调用方法construct()。
如果有帮助的话,我的配置类
@Configuration
@ComponentScan(basePackages = { "me.project" })
@EnableAutoConfiguration
@EnableVaadinEventBus
public class TheConfig {
// contains only one bean definition - sessionfactory
}
有没有人遇到过类似的问题?我无法在任何地方找到帮助,谁能告诉我我做错了什么。 谢谢
【问题讨论】:
-
您找到解决方案了吗?我有类似的问题,V_J 的回答不起作用。
-
尝试在 UI 中添加 viewdisplay,并将您的视图添加到 viewdisplay。我有同样的问题,但使用 viewdisplay 解决了。