Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 寻找在vaadin UIs之间传递数据的最佳实践_Java_Sql Server_Spring_Vaadin_Vaadin Flow - Fatal编程技术网

Java 寻找在vaadin UIs之间传递数据的最佳实践

Java 寻找在vaadin UIs之间传递数据的最佳实践,java,sql-server,spring,vaadin,vaadin-flow,Java,Sql Server,Spring,Vaadin,Vaadin Flow,我是vaadin的新手,我正在尝试使用SQL Server中的数据构建一个包含多个页面的web应用程序。多亏了我对几个StackOverflow主题的研究,我可以在第一页开始工作,在网格中显示我的Person实体的一些基本数据 现在,当我在网格中选择一条记录并单击按钮时,我想打开第二个页面,并使用所选人员的ID(Person.getId())将其他数据从后端加载到FormLayout(在本例中为联系人信息) 目前,我已经让我的应用程序打开了第二页,但没有数据。我的第二页有@Route(“/con

我是vaadin的新手,我正在尝试使用SQL Server中的数据构建一个包含多个页面的web应用程序。多亏了我对几个StackOverflow主题的研究,我可以在第一页开始工作,在网格中显示我的Person实体的一些基本数据

现在,当我在网格中选择一条记录并单击按钮时,我想打开第二个页面,并使用所选人员的ID(
Person.getId()
)将其他数据从后端加载到FormLayout(在本例中为联系人信息)

目前,我已经让我的应用程序打开了第二页,但没有数据。我的第二页有
@Route(“/contact”)
注释,我正在使用第一页中的
ui.navigate(“/contact”)
导航到第二页

昨天我花了几个小时阅读黑板事件总线,以便在页面之间传递数据。我做了一个简单的例子,第一个页面触发一个person事件,第二个页面监听这些事件并显示带有
System.out.println()
的person。但是如何使用此事件/人员数据刷新第二个vaadin页面?在黑板代码示例中,我的黑板总线是静态的

如前所述,我想选择一个人,然后导航到另一个页面以加载此人的其他信息。如果用户导航回第一页并选择另一个人,再次单击按钮导航到第二页,则第二页应刷新并显示新选择的人的数据

目前,我的第二个页面已加载,但由于
NullPointerException
而崩溃,因为selectedPerson变量为空,我不知道如何使用Blackboard Listener使用从事件中检索到的person数据刷新UI


我现在真的不知道如何继续。我建议您将此人的id作为参数传递。类似这样的代码(未经测试的代码)

然后是另一页

@Route("contact")
public class ContactPage extends ... implements HasUrlParameter<Long> {
...
    @Override
    public void setParameter(BeforeEvent event, Long parameter) {
        if (parameter != null) {
            // Load additional info
        } else {
            Notfication.show("Blablabla");
            // Or
            event.rerouteToError(someError);
        }
    }
@路线(“联系人”)
公共类ContactPage扩展。。。实现HasUrlParameter{
...
@凌驾
公共void setParameter(BeforeEvent事件,长参数){
if(参数!=null){
//加载附加信息
}否则{
通知显示(“布拉布拉布拉”);
//或
事件。重新路由到错误(someError);
}
}

我建议您将该人员的id作为参数传递。类似这样的内容(未测试的代码)

然后是另一页

@Route("contact")
public class ContactPage extends ... implements HasUrlParameter<Long> {
...
    @Override
    public void setParameter(BeforeEvent event, Long parameter) {
        if (parameter != null) {
            // Load additional info
        } else {
            Notfication.show("Blablabla");
            // Or
            event.rerouteToError(someError);
        }
    }
@路线(“联系人”)
公共类ContactPage扩展…实现HasUrlParameter{
...
@凌驾
公共void setParameter(BeforeEvent事件,长参数){
if(参数!=null){
//加载附加信息
}否则{
通知显示(“布拉布拉布拉”);
//或
事件。重新路由到错误(someError);
}
}

我强烈建议您在进一步实施应用程序之前阅读本页。我相信您在阅读本页的同时也会了解其他最佳实践。您正在寻找的是。我强烈建议您在进一步实施应用程序之前阅读本页。我肯定您会了解其他最佳实践阅读时也要练习。你要找的是。谢谢,这解决了我的问题。我也按照上面Kaspar Scherrer的建议,花了一个晚上再次详细阅读了文档。我将在接下来的几天里继续阅读整个文档,以便在下次阅读之前更好地理解理论实施步骤。听起来是个很棒的计划!最近添加了对文档进行评论的功能(通过
在每页底部开始讨论
),因此,如果您阅读的内容不清楚,请毫不犹豫地发表评论:)谢谢,这解决了我的问题。我也遵循了上面Kaspar Scherrer的建议,花了一个晚上再次详细阅读了文档。我将在接下来的几天继续阅读整个文档,以便在下一次im之前更好地理解理论实施步骤。听起来是个很棒的计划!最近添加了对文档进行评论的功能(通过
在每页底部开始讨论
),因此如果您阅读的内容不清楚,请毫不犹豫地对其进行评论:)