如何在Thymleaf + springboot控制器中显示来自Flux的数据

问题描述 投票:0回答:1

我正在尝试显示从Corda节点收到的进度跟踪器信息。我正在使用ReactiveDataDriverContextVariable设置为Springboot控制器/ Thymeleaf中控制器模型的属性,但是它不起作用,它仅显示变量的地址。

我已经尝试过此site的教程

我的控制器看起来像(我设法从可观察到的Progresss跟踪器中创建了Flux,myFlux)

    public String index(final Model model) {

        // loads 1 and display 1, stream data, data driven mode.
        IReactiveDataDriverContextVariable reactiveDataDrivenMode =
                new ReactiveDataDriverContextVariable(myFlux, 100);

        model.addAttribute("progressTracker", reactiveDataDrivenMode);

        return "index";

    }

我的胸腺视图

        <table id="Progress" class="table table-striped">
            <thead>
            <tr>
                <th width="70%">Step</th>
            </tr>
            </thead>
            <tbody>
            <tr class="result" data-th-each="step: ${progressTracker}">
                <td>[[${step}]]</td>
            </tr>
            </tbody>
        </table>
spring-boot thymeleaf corda spring-webflux
1个回答
1
投票

[当您说“显示我的变量的地址”时,由于没有适当的toString()方法,我相信它是要打印的哈希对象哈希值。

我相信您正在尝试打印可观察的内容,而不是订阅它。例如,当您执行以下操作时,它并没有执行很多操作,因为您尝试打印可观察的对象。

val handle = proxy.startTrackedFlow(::MyFlow, val1, val2);
println(handle.progress);

您实际上应该在做什么:

 val handle = proxy.startTrackedFlow(::MyFlow, val1, val2);
 handle.progress?.subscribe {
      println(it)
 }

它应该打印进度步骤。

© www.soinside.com 2019 - 2024. All rights reserved.