【问题标题】:Vaadin4spring and Vaadin Touchkit NavigationViewVaadin4spring 和 Vaadin Touchkit NavigationView
【发布时间】:2014-11-16 21:44:42
【问题描述】:

我正在尝试将几个 Spring 服务注入到 NavigationView (Vaadin Touchkit) 中,并且视图根本没有由 Spring 管理,因此没有调用 @PostConstruct 方法,因此没有调用服务。

是否可以像管理普通 Vaadin 视图一样管理这种类型的视图作为 Spring bean?

否则,如何在 Vaadin Touchkit NavigationView 中使用注入服务?

类声明:

@VaadinView(name = Views.HOME)
@UIScope
public class HomeView extends NavigationView {
    @Autowired
    private WindDataClientService windDataClientService;
    @Autowired
    private ForecastDataService forecastDataService;
    ...
    ...
    ...
    @PostConstruct
    public void init() {
        grpConditions.addComponent(lnkConditionsTitle);
        grpConditions.addComponent(buildConditionRows());
        lblAlertsTitle.setCaption(lblAlertsTitle.getCaption() + forecastDataService.findClosestForecast());
    }
}

提前非常感谢

【问题讨论】:

    标签: spring vaadin7 vaadin-touchkit vaadin4spring


    【解决方案1】:

    您应该将 TouchKits NavigationView 视为普通的 Vaadin 组件,如 VerticalLayout 或 Panel,而不是 Vaadin Navigator View。所以不需要用@VaadinView注解,只要用Component(~@VaadinComponent)就可以了。

    如果您想将 NavigationView 组件与 Navigator 一起使用,则需要一些其他技巧。您至少需要让您的视图实现与导航器相关的视图接口。我还没有尝试过,但我认为它应该也可以。

    【讨论】:

    • 非常感谢马蒂。我会尝试第一个选项,因为它看起来更自然。也许我错过了一些东西,但这是否意味着您已经可以仅通过使用此注释来代理(弹簧)任何 Vaadin 组件?例如,将自定义组件注入到不需要实例化它的视图中?真好? ;O)
    • 好点。我没有意识到它正在扩展 AbstractComponentContainer
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    相关资源
    最近更新 更多