如何在 Thymeleaf 和 Spring Boot 中进行复杂的表单设计(ZK 有经验的用户)

How to make complex form design in Thymeleaf and Spring Boot (ZK Experienced User)

这么多年都是在ZK Web Framework(https://www.zkoss.org/)上开发的。我可以使用 MVC,将“apply = MyClass”标记用于 window,或使用“use = MyWindowClass”标记重新使用整个 window。 Java class 中的所有变量和组件都可以动态添加、更新和删除,而无需从我的 [=39] 的 java 代码中重新加载页面(Ajax enterily) =] class。我做了一个 Zul 页面,连接到 MyClassWindow class,我可以在那里做任何事情。

现在...我对 Thymeleaf + Spring Boot 进行了一些诅咒,我的问题是...如何使用 thymeleaf 进行复杂设计而不让我发疯?因为我在互联网上看到了很多示例,但都需要大量 java 脚本开发,jquery,以及大量 HTML 代码。 none 让我控制界面,就像我可以用我的 MyClass 做的那样 Window...我知道也许 Zk 框架在我的倒退中做所有事情(我不确定)...但是我想问你...比我更了解的人,这在真实的应用程序世界中如何使用 thymeleaf+Spring 来解决?学习 javascript + jquery 是出路?应用一个框架而忘记战斗?也许 Thymeleaf 不是我需要的工具?也许我的方法是错误的,我必须适应 thymeleaf 方式?

例如:在图片中做这个布局:在上面我有一些带有“搜索”按钮的过滤器。按下时,它会使用 onClick 方法加载左侧列表,而无需重新加载页面。然后我 select 左边的项目,然后按中间的按钮用 4 种方法做一些动作,而无需重新加载页面。最后我 select 右边的一些属性,当我按下“更改状态”按钮时我重新加载页面。

非常感谢您的宝贵时间!

官网thymeleaf compares itself to jsp。因此,使用这两种技术,您将获得服务器端呈现的 html 页面 - thymeleaf 提供了一种全新的方法,并且与长期发展的标准 JSP 相比有一些好处。为了在浏览器中更改页面,您需要某种额外的客户端 JS 实现。 Jquery 是一个广泛使用的库 - 即使不是最新的新“事物” - 也值得关注,它可以帮助较小规模的动态页面。

thymleaf-ecosystem 页面上提到了一些扩展,听起来像是将模板引擎扩展到客户端。

ZK 与 thymeleaf 相比做了更多事情,尤其是它处理 JS 部分(在内部使用 jquery)和与服务器的 AJAX 通信。因此 thymeleaf 本身并不能完全替代 ZK,还需要其他或替代技术。

要构建完全动态的 Web 应用程序,您还可以考虑将一种流行的 JS 框架(React、Angular、Vue、Svelte ...)与 Spring REST 结合使用() 后端提供动态数据,无需重新加载即可更新您的页面。这样做你甚至可以跳过 jquery-era.

(顺便说一句:如果您想 to/have 将现有的 ZK 应用程序迁移到 spring 引导,有 zk-springboot