【发布时间】:2017-07-12 12:30:36
【问题描述】:
面对这些问题 w.r.t Vaadin UI 和 URL 映射。
问题1:
我正在尝试将 Vaadin 用于我的实体的基本 CRUD 操作。首先,我想向 /subpath/xyz url 公开一个 UI 类。但是子路径 url 映射在某种程度上不起作用。 (请注意,当我保留或删除 @Spring(path="myui") 时,它仍然映射到 localhost:8080/myui/ 而不是 localhost:8080/subpath/myui/
我错过了什么?
我一直在关注 Vaadin 的文档,但到目前为止还没有运气。 https://vaadin.com/docs/-/part/framework/application/application-environment.html#application.environment.servlet-mapping
问题2: 此外,Vaadin 不会从类名自动生成 url 映射。例如。如果我没有在@SpringUI 中提供路径属性(根据 Vaadin 的文档),MyUI 类名应该映射到 localhost:8080/my-ui/。
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.Title;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.spring.server.SpringVaadinServlet;
import com.vaadin.ui.*;
import javax.servlet.annotation.WebServlet;
@Theme("valo")
@Title("My UI")
@SpringUI(path="myui")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest request) {
// Create the content root layout for the UI
VerticalLayout content = new VerticalLayout();
setContent(content);
// Display the greeting
content.addComponent(new Label("Hello World!"));
// Have a clickable button
content.addComponent(new Button("Click Me!",
click -> Notification.show("Clicked!")));
}
@WebServlet(urlPatterns = {"/admin/*", "/VAADIN/*"}, name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends SpringVaadinServlet {
}
}
【问题讨论】: