我正在尝试显示从Corda节点收到的进度跟踪器信息。我正在使用ReactiveDataDriverContextVariable
作为Springboot控制器/ Thymeleaf中控制器模型的属性,但是它不起作用,它只显示变量的地址。
我已经尝试过本site
中的教程我的控制器看起来像(我设法通过可观察到的Progresss跟踪器myFlux创建了Flux
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>
答案 0 :(得分:1)
当您说“显示变量的地址”时,由于没有适当的toString()方法,我相信它所引用的哈希对象哈希将被打印。
我相信您正在尝试打印可观察的内容,而不是订阅它。例如,当您执行以下操作时,它并没有执行很多操作,因为您尝试打印可观察对象。
val handle = proxy.startTrackedFlow(::MyFlow, val1, val2);
println(handle.progress);
您实际上应该做的是这样:
val handle = proxy.startTrackedFlow(::MyFlow, val1, val2);
handle.progress?.subscribe {
println(it)
}
它应该打印进度步骤。