Vaadin4spring и Vaadin Touchkit NavigationView

Я пытаюсь внедрить пару сервисов Spring в NavigationView (Vaadin Touchkit), и Spring вообще не управляет представлением, поэтому метод @PostConstruct не вызывается и, следовательно, сервисы не вызываются.

Можно ли управлять этим типом представлений как весенними бобами так же, как можно управлять обычными представлениями Vaadin?

В противном случае, как я могу использовать внедренный сервис в 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());
    }
}

Заранее большое спасибо

1 ответ

Решение

Вы должны рассматривать TouchKits NavigationView как обычный компонент Vaadin, такой как VerticalLayout или Panel, а не как представление Vaadin Navigator. Поэтому нет необходимости аннотировать его с помощью @VaadinView, а только с помощью компонента (~@VaadinComponent).

Если вы хотите использовать компоненты NavigationView с Navigator, вам понадобятся другие приемы. По крайней мере, вам нужно, чтобы ваш вид реализовал интерфейс View, связанный с навигатором. Я не пробовал это, но я думаю, что это должно сработать.

Другие вопросы по тегам