在 Vaadin 8 中传递和接收数据 [英] Pass and receive data in 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屋!