Javascript Java中模板引擎的用途是什么?

Javascript Java中模板引擎的用途是什么?,javascript,java,html,spring-boot,backend,Javascript,Java,Html,Spring Boot,Backend,我是一名android开发人员,大约两年了,最近我一直在考虑构建web应用程序。所以我开始研究spring boot,一切都很好。然后,我遇到了一个称为模板引擎(thymeleaf)的东西,它根据定义将代码与表示分离 让我困惑的是,后端服务器怎么能有html?演示文稿是否应该在前端由html、css和javascript处理?我甚至看到了一些教程,其中他们实际上在控制器中键入html代码作为返回值 我的理解是,后端服务器通过使用AJAX向前端公开API,前端将处理这些数据并在屏幕上显示信息,为什

我是一名android开发人员,大约两年了,最近我一直在考虑构建web应用程序。所以我开始研究spring boot,一切都很好。然后,我遇到了一个称为模板引擎(thymeleaf)的东西,它根据定义将代码与表示分离

让我困惑的是,后端服务器怎么能有html?演示文稿是否应该在前端由html、css和javascript处理?我甚至看到了一些教程,其中他们实际上在控制器中键入html代码作为返回值

我的理解是,后端服务器通过使用AJAX向前端公开API,前端将处理这些数据并在屏幕上显示信息,为什么后端会提供html代码


谢谢

Thymeleaf通过使用模板引擎提供HTML页面来取代JSP。控制器请求HTML文件,Spring Boot在使用提供的模型构建模板后提供该模板

非常好,因为它允许您动态地重建模板。比如说,你正在显示一个用户在前端指向他们的点,但是这些点可能会增加或减少

您可以在后台使用模型构建模板。模型引用提供给解析它的模板

@RequestMapping(…)
公共字符串请求(模型){
模型。投入(“点数”,5);
返回“my template.html”
}
然后使用Thymeleaf语言将对象提供给HTML文件,以便在运行时在引擎中处理


...
Spring Boots模板引擎将在后台构建此模板并将其呈现给用户,但它将向最终用户显示实际点!希望这有点帮助

前端将处理这些数据

什么前端?你是说HTML页面中的JavaScript代码?那是从哪里来的?哦,是的,服务器

它是向客户端提供HTML页面以及任何.js和.css文件的服务器

服务器可以提供静态页面,任何动态页面都由JavaScript处理。或者,服务器可以使用。。。你猜对了。。。模板引擎

您通常不希望JavaScript最初构建页面,只是为了使用JavaScript处理任何动态行为。有些页面甚至不需要任何动态行为


当然,除非您考虑(SPA),其中只有一个根HTML页面,其他所有内容都是通过JavaScript和AJAX调用在客户端构建的,但大多数web应用程序不是SPA。

好的,新的应用程序和网站可能只需加载/引导/打开一次,然后通过AJAX请求拉或推数据,这很好,它节省了交通,而且速度很快

但情况并非总是这样,一些框架仍然不能在小请求上构建所有内容。Java中的Spring或PHP中的Symfony是MVC框架,使用模板引擎构建页面。这听起来可能有点过时,但仍然有很多网站在使用它

如果你为一个PC或其他设备速度较慢的客户构建一个web应用程序,并且页面内容性能很高,那么你可能希望在服务器上做尽可能多的工作,这样用户就不必等待太久。还可以缓存呈现的页面。甚至还可以在服务器端呈现react页面,例如加快初始页面加载速度

对于Java和Spring,我只使用了JSP,我不知道它是什么。只需使用您喜欢的,也许是最受支持/记录的

建立这样的网站并不意味着你不能使用AJAX,但是如果你使用模板,你需要考虑什么是有意义的

让我困惑的是,后端服务器怎么能有html

“后端”必须有HTML,因为这是交付给客户机并由客户机呈现的内容

可能只是后端“服务器”只是一个CDN,比如说,一个HTML/JS SPA,但仍然有一些东西向浏览器交付内容

这就是说:服务器端呈现仍然是一件事,最近又重新兴起了——React应用程序可能会在服务器上完成其初始呈现,因此客户端再次获得一个包含HTML和相关数据的页面,然后开始像普通SPA一样工作

我的理解是,后端服务器通过使用AJAX向前端公开API,前端将处理这些数据并在屏幕上显示信息,为什么后端会提供html代码

因为需要运行JS才能访问这些API

一些历史:


浏览器过去很糟糕。JS过去是一个整洁的附加组件,站点是相对静态的,基本上所有的渲染都是在服务器上完成的。后端将从任何地方获取数据并生成完整的HTML页面,在客户端除了一些表单字段之外几乎没有发生任何事情,可能是一些验证,这就是它的范围。

我知道这个问题到目前为止已经得到了相当有效的回答,但是我想加上我的两分钱,因为我经常和Thymeleaf一起工作

考虑模板引擎最简单的方法是,它允许根据控制器方法传递给它的信息动态开发html。这允许您将通常不存在的逻辑放入其中,或者说,如果用户可能登录到admin,则显示某个部分


如果网页是房子,html是框架,css是墙,Javascript是灯和电,模板引擎几乎就是建筑师在根据房子买家的愿望(用户输入)构建框架之前动态设计平面图

可能是您错误地标记了
javascript
,请编辑。您读过帖子吗?不是每个应用程序都是SPA-例如,此网站不是SPA,html