Vaadin 在FormLayout中包含CDI的ComboBox数据源
我使用Vaadin7.3和CDI插件,它将我的Vaadin应用程序与我的EJB后端连接起来。我的EJB后端有一个用于从数据库读取所有实体的DAOVaadin 在FormLayout中包含CDI的ComboBox数据源,vaadin,cdi,vaadin7,Vaadin,Cdi,Vaadin7,我使用Vaadin7.3和CDI插件,它将我的Vaadin应用程序与我的EJB后端连接起来。我的EJB后端有一个用于从数据库读取所有实体的DAO MyAppUI-处理基本模板、导航 MyWindow—只是一个模式窗口,如果我按下MyAppUI上的按钮,它就会显示,并显示MyForm的一个实例 MyForm—声明应用程序实体的表单 MyAppUI和MyWindow通过CDI插件进行管理,允许我注入EJB后端的DAO,但MyForm只是FormLayout的一个子类,不由CDI管理。表单包含一个
- MyAppUI-处理基本模板、导航李>
- MyWindow—只是一个模式窗口,如果我按下MyAppUI上的按钮,它就会显示,并显示MyForm的一个实例
- MyForm—声明应用程序实体的表单
MyAppUI和MyWindow通过CDI插件进行管理,允许我注入EJB后端的DAO,但MyForm只是FormLayout的一个子类,不由CDI管理。表单包含一个组合框,它应该显示DAO可以访问的所有数据。如何将DAO注入我的表单?您有几种可能性
MyForm
,而是使用@inject进行注入。然后可以在MyForm
中插入DAO。为此,您可能需要更改MyForm
的构造函数,或者将构造函数转换为@PostConstruct注释的方法,并使用空构造函数。如果有用,您可以使用@UIScoped注释MyForm
MyForm
的构造函数,或者如果以后只需要传递给某个函数(setter)MyForm
为非静态类,并使用注入MyWindow的DAOVaadinSession
中,并在MyForm