【问题标题】:Unable to find design file in Vaadin在 Vaadin 中找不到设计文件
【发布时间】:2018-11-15 15:38:30
【问题描述】:

我想在 vaadin 中的视图之间进行导航。 我用 html 和导航器制作了 2 个视图,但是当我初始化第一个视图时,我有一个 DesignException

com.vaadin.ui.declarative.DesignException: Unable to find design file MainView.html in com.andrei
at com.vaadin.ui.declarative.Design.read(Design.java:608)
at com.andrei.MainView.<init>(MainView.java:23)
at com.andrei.MyUI.init(MyUI.java:39)
at com.vaadin.ui.UI.doInit(UI.java:770)
at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:218)
at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:76)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1601)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:445)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

我试图将 html 文件放在 com.andrei 目录中,但它不起作用,之后 我发现 html 文件必须在资源文件夹中的信息,但它又不起作用,我必须把这个文件放在哪里,或者如何将 rootPath 更改为目录

这是我的用户界面

@Theme("mytheme")
public class MyUI extends UI {
    Navigator navigator;
    protected static final String MAINVIEW = "main";

    @Override
    protected void init(VaadinRequest vaadinRequest) {
        navigator = new Navigator(this, this);

        // Create and register the views
        navigator.addView("", new StartView());
        navigator.addView(MAINVIEW, new MainView(navigator));



    }

    @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
    @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
    public static class MyUIServlet extends VaadinServlet {
    }

}

这是主视图:

主视图

@DesignRoot
public class MainView extends VerticalLayout implements View {
// Menu navigation button listener


VerticalLayout menuContent;
Panel equalPanel;
Button logout;

public MainView(Navigator navigator) {
    Design.read(this);

    logout.addClickListener(event ->
            navigator.navigateTo(""));
}

@DesignRoot
class AnimalViewer extends VerticalLayout {
    Label watching;
    Embedded pic;
    Label back;

    public AnimalViewer(String animal) {
        Design.read(this);

        watching.setValue("You are currently watching a " +
                animal);
        pic.setSource(new ThemeResource(
                "img/" + animal + "-128px.png"));
        back.setValue("and " + animal +
                " is watching you back");
    }
}

@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
    if (event.getParameters() == null
            || event.getParameters().isEmpty()) {
        equalPanel.setContent(
                new Label("Nothing to see here, " +
                        "just pass along."));
        return;
    } else
        equalPanel.setContent(new AnimalViewer(
                event.getParameters()));
}
}

【问题讨论】:

  • find design file MainView.html in com.andrei。将MainView.html 放入您的类路径中的com/andrei(例如,在您的资源目录中)
  • 对不起,我不明白,你能解释一下吗,我必须把 MainView.html 放在 com/andrei 中,我放了,但没有任何改变

标签: java vaadin


【解决方案1】:

正确的位置很可能是/src/main/resources/com/andrei/MainView.html

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多