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

问题描述

我已经在ZK Web框架(@L_502_0@)上开发了很多年。我可以在窗口上使用“ apply = MyClass”标签来使用MVC,或者在“ use = MyWindowClass”标签下重新使用整个窗口。可以从java类中动态添加,更新和删除所有变量和组件,而无需从Window类的Java代码中重新加载页面(请仔细输入Ajax)。我做一个Zul页面,连接到MyClassWindow类,我可以在那里做任何事情。

现在...我在Thymeleaf + Spring Boot上做了一些诅咒,我的问题是...如何在不使我发疯的情况下用thymeleaf进行复杂的设计?因为我在互联网上看到了很多示例,但是都需要大量的javascript开发,jquery和大量的HTML代码。而且没有人能让我像使用MyClassWindow一样控制界面...我知道Zk框架可能会倒退所有功能(我不确定)...但是我想问你...比我了解更多的人,如何使用thymeleaf + Spring在实际的应用程序世界中解决这个问题?学习javascript + jquery是要走的路?应用框架而忘记战斗?也许Thymeleaf不是我需要的工具吗?也许我的方法错误的,我必须适应百里香的方法吗?

例如:用于图片中的这种布局:在上方,我有一些带有“搜索”按钮的过滤器。按下它时,将使用onClick方法加载左侧列表,而无需重新加载页面。然后,我从左侧选择项目,然后按中间按钮以4种方法执行某些操作,而无需重新加载页面。最后,我从右侧选择了一些属性,当我按下“更改状态”按钮时,即重新加载页面时。

example

非常感谢您的时间!

解决方法

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

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

与thymeleaf相比,ZK还可以做更多的事情,特别是它处理JS部分(内部使用jquery)以及与服务器的AJAX通信。因此,百里香叶本身并不能完全替代ZK,因此需要其他或替代技术。

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

(顺便说一句:如果您想/必须将现有的ZK应用程序迁移到Spring Boot,则有zk-springboot