在 Vaadin 8 中传递和接收数据 [英] Pass and receive data in Vaadin 8

查看:51
本文介绍了在 Vaadin 8 中传递和接收数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个观点:

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

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

and I would pass parameter to other:

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

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

I tried to send parameter(orderNumber) by:

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

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

then it goes to /orderNumber but when tried to catch it by:

String fragment = getPage().getUriFragment();

但是

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

Fragment: null

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

How to send parameter from one Vaadin view to another?

@编辑离上班很近.我已将视图更改为:

@Edit It is close to work. I have changed my View to:

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

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

and in @SpringUI made getUI().getNavigator().navigateTo("GetOrderNumber/" + orderNumber); it actually still throws java.lang.IllegalArgumentException: Trying to navigate to an unknown state '' and an error view provider not present but it works. I mean all the time when I go to localhost:8080/order the

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

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

throws an error but then works as expected - go to view and pass parameter right. I have no idea why navigator = new Navigator(this, this); cause an error

推荐答案

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

@SpringUI annotation defines always just the name of the view, it is not the place where you give the URI parameter, the correct place is the navigateTo(..) method, e.g.:

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

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

There is more information about Vaadin and Spring add-on here

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

这篇关于在 Vaadin 8 中传递和接收数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆