【问题标题】:Spring boot - Thymeleaf vs. JQuery?春季启动 - Thymeleaf 与 JQuery?
【发布时间】:2017-04-15 21:29:25
【问题描述】:

我是 JQuery 的新手,到目前为止,我在其他项目中使用它来为用户界面添加视觉动画。由于我在编写 Spring Boot 应用程序 时总是在 UI 上使用 Thymeleaf,因此将两者结合起来我很满意。用户端的数据通过Thymeleaf经过Model,由服务器处理,然后将不同对象中的结果注入UI(再次通过Model)。

但现在我开始通过使用 JQuery ajax 查询来简化流程,这有利于摆脱页面刷新,而且我不必使用模型将对象注入每个页面。 (在 Thymeleaf 的情况下,即使用户决定不更改页面上的某些内容 - 例如表单 - 仍然需要一个对象 - 以防万一 - 它将存储他们的更改。)

问题是:这是摆脱 Thymeleaf 并使用纯 HTML+JQuery 在用户界面上完成所有请求+响应工作的好策略吗?我想知道 如果它有任何缺点,因为有很多人在没有 JS 的情况下使用 thymeleaf 来处理这些东西,也许他们有充分的理由这样做。

【问题讨论】:

  • 您可以刷新站点上的片段,这样可以防止整个页面重新加载。我认为您正在寻找以下内容:xpadro.blogspot.de/2014/02/…
  • 谢谢 Manu,但在那个例子中,他们还使用 JQuery 来触发刷新,将其与模型混合。我的问题更像是,如果使用 JQuery 并消除 Thymeleaf/Models 是一个好策略。
  • 正确地不会弄乱 javascript 和 HTML。如果你会使用这种方法,那么任何模板引擎和任何 js 框架都不会出现问题。

标签: java jquery spring spring-boot thymeleaf


【解决方案1】:

所以我认为我已经找到了问题的答案,通过考虑一些重要方面,例如:

代码可重用性

使用像 Thymeleaf 这样的框架的一大好处是,您可以通过使用片段轻松重用您编写的代码(在 TL 的情况下)。在纯 HTML+JQuery 中创建前端意味着每个页面都需要有一个单独的 .html,除非我们构建一个单页面应用程序,但在这种情况下使用 Angular 会更有效率。

安全

另一个我没有考虑到的方面; Thymeleaf 与 Spring Security 兼容,它还具有在运行时对用户隐藏的特定语法。如果服务器是 REST 服务器(在使用 Spring boot 的几种情况下),则需要实现额外的安全性,Thymeleaf 可以提供帮助。 (无论如何,大多数情况下都需要额外的安全性)

所以最好的解决方案可能是继续使用 Thymeleaf,使用 JQuery 作为界面上的支持(就像使用 ajax 时缓存数据,Thymeleaf 不太擅长,并且还做视觉花里胡哨)和让他们一起工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 2017-07-03
    • 2017-09-11
    • 2015-04-18
    • 2017-06-24
    • 2015-08-22
    • 2015-09-18
    • 2015-03-20
    相关资源
    最近更新 更多