迭代可观察的结果而不会阻塞Velocity模板

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

我正在尝试使用Java并使用“反应式”编程来将一个简单的Web应用程序作为一个学习项目。

我的服务方法返回Observable个对象,我希望能够通过显示在Observable中可用的元素,从Velocity模板异步地生成HTML。

示例服务方法签名:public Observable<Category> getCategories()

还有我的简单Velocity模板:

<ul>
    #foreach($category in $categories)
        <li>$category.name</li>
    #end
</ul>

到目前为止,我唯一设法通过执行blocking操作使其工作: velocityContext.put("categories", service.getCategories().toList().blockingGet());

我想要的是能够异步地从Observable返回结果,而[[without必须使用.blockingGet()或类似方法。

这可能吗?如果可以完成工作,我也愿意使用其他模板引擎。到目前为止,我已经尝试过Thymeleaf和Handlebars.java,但无法在其中任何一个中使用它(但是对于模板引擎,我一般来说还是很新的)。

谢谢

java templates reactive-programming velocity
1个回答
0
投票
当服务器接收到请求时,以同步方式呈现HTML页面。因此,无论使用哪种模板引擎,只要弹出一个新类别,就无法获得HTML页面的更新。

您将不得不使用ajax或任何服务器端事件或WebSocket机制诉诸于客户端轮询。

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