Настройка содержимого моего подкласса `UI` в веб-приложении Vaadin Flow - PullRequest
0 голосов
/ 13 ноября 2018

В Vaadin Flow запись подкласса класса UI больше не требуется.Тем не менее, страница руководства по Различия между приложениями V10 и V8 предполагает, что мы можем это сделать.

Проблема: класс UI в Flow не имеет метода UI::setContent.

Эта обычная строка кода в нашем методе UI::init не выполняется в потоке:

this.setContent( layout );  // <--- No method `setContent` found in Flow

➥ Как нам настроить отображение содержимого в нашем подклассе UI во время выполнения?

Вот мой код с ошибочной строкой setContent.

package com.acme;

import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.server.VaadinRequest;
import com.vaadin.flow.server.VaadinServlet;
import com.vaadin.flow.server.VaadinServletConfiguration;

import javax.servlet.annotation.WebServlet;

public class MyUI extends UI {
    protected void init ( VaadinRequest request ) {
        VerticalLayout layout = new VerticalLayout();
        this.setContent( layout );
    }

    @WebServlet (
        urlPatterns = "/*",
        name = "myservlet",
        asyncSupported = true
    )
    // The UI configuration is optional
    @VaadinServletConfiguration (
        ui = MyUI.class,
        productionMode = false
    )
    public class MyServlet extends VaadinServlet {
    }
}

1 Ответ

0 голосов
/ 13 ноября 2018

UI сам является компонентом и реализует HasComponents. Следовательно, вы можете просто вызвать метод add(Component...), чтобы заполнить его компонентами.

...