【问题标题】:Pass and receive data in Vaadin 8在 Vaadin 8 中传递和接收数据
【发布时间】:2018-04-15 12:04:32
【问题描述】:

我有一个看法:

@SpringUI(path="order")
@Title("order")
public class OrderGUI extends UI{

我会将参数传递给其他人:

@SpringUI(path="orderNumber")
@Title("Order number")
public class GetOrderNumber extends UI {

我尝试通过以下方式发送参数(订单号):

getUI().getPage().setUriFragment(orderNumber);
getUI().getPage().setLocation("orderNumber");

然后它转到/orderNumber 但当试图通过以下方式捕获它时:

String fragment = getPage().getUriFragment();

但是

System.out.println("Fragment: " + fragment);

Fragment: null

如何将参数从一个 Vaadin 视图发送到另一个?

@编辑 它离工作很近。我已将视图更改为:

@SpringView(name = "GetOrderNumber")
@Title("Order number")
public class GetOrderNumber extends VerticalLayout implements View {

在@SpringUI 中制作了getUI().getNavigator().navigateTo("GetOrderNumber/" + orderNumber); 它实际上仍然抛出 java.lang.IllegalArgumentException: Trying to navigate to an unknown state '' and an error view provider not present 但它有效。我的意思是当我去 localhost:8080/order 的时候

@SpringUI(path="order")
public class OrderGUI extends UI {

引发错误,但随后按预期工作 - 转到查看并正确传递参数。我不知道为什么navigator = new Navigator(this, this); 会导致错误

【问题讨论】:

    标签: java spring-boot vaadin vaadin8


    【解决方案1】:

    @SpringUI 注解总是只定义视图的名称,它不是你给 URI 参数的地方,正确的地方是 navigateTo(..) 方法,例如:

    getUI().getNavigator().navigateTo("myview/someparameter");
    

    这里有更多关于 Vaadin 和 Spring 插件的信息

    https://vaadin.com/docs/v8/framework/advanced/advanced-spring.html

    【讨论】:

    • 第一枪 - 改成getUI().getNavigator().navigateTo("orderNumber/" + orderNumber);,得到java.lang.NullPointerException: null
    • 如果我没有 Navigator 类的对象也不奇怪
    • 是的,您需要先设置导航器。通常你在小型应用程序的主 UI 类或大型应用程序的主视图/布局/任何类中执行此操作。 Navigator 的文档在这里:vaadin.com/docs/v8/framework/advanced/advanced-navigator.html
    • 还要注意视图应该使用@SpringView注解并扩展com.vaadin.navigator.View接口,而这里的示例代码使用@SpringUI注解并扩展com.vaadin.ui.UI类。通常每个应用程序应该只有一个 UI 类,但应该有多个 View 类。
    • @Michu93 如果要将订单号作为参数传递给视图,则不应在 addView(..) 方法中提供。相反,您应该这样做 navigator.addView("myview"); navigator.navigateTo("myview/"+GetOrderNumber());
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多