第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

小怪獸愛吃肉 2024-01-25 10:41:44
我是一名 Android 開發(fā)人員,大約兩年了,最近我一直在考慮構建 Web 應用程序。所以我開始研究 Spring Boot,一切都很棒。然后,我遇到了一個叫做模板引擎(thymeleaf)的東西,它根據(jù)定義將代碼與表示分離。讓我困惑的是后端服務器怎么會有html?演示文稿應該由前端的 html、css 和 javascript 處理嗎?我什至看到了一些教程,他們實際上在控制器中輸入 html 代碼作為返回值。我的理解是后端服務器通過AJAX公開API供前端使用,前端將操作這些數(shù)據(jù)并將信息呈現(xiàn)在屏幕上,為什么后端要提供html代碼?
查看完整描述

5 回答

?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

前端將操縱這些數(shù)據(jù)

什么前端?你指的是 HTML 頁面中的 JavaScript 代碼嗎?那個是從哪里來的?哦,對了,服務器

它是向客戶端提供HTML 頁面以及任何 .js 和 .css 文件的服務器。

服務器可以提供靜態(tài)頁面,任何動態(tài)頁面都由 JavaScript 處理。或者,服務器可以使用……您猜對了……模板引擎來動態(tài)構建 HTML 頁面。

您通常不希望 JavaScript 最初構建頁面,只是為了使用 JavaScript 處理任何動態(tài)行為。有些頁面甚至不需要任何動態(tài)行為。

當然,除非您正在考慮單頁應用程序(SPA),其中只有一個根 HTML 頁面,而其他所有內(nèi)容都是通過 JavaScript 和 AJAX 調用在客戶端構建的,但大多數(shù) Web 應用程序都不是 SPA。


查看完整回答
反對 回復 2024-01-25
?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

我知道到目前為止這個問題已經(jīng)得到了相當有效的回答,但我想補充兩點,因為我經(jīng)常與 Thymeleaf 一起工作。

考慮模板引擎的最簡單方法是,它允許基于控制器方法傳遞給它的信息對 html 進行一些動態(tài)開發(fā)。這允許您添加通常不存在的邏輯,或者說如果用戶可能登錄到管理員,則顯示特定部分。

如果網(wǎng)頁是房子,html 是框架,css 是墻壁,Javascript 是燈和電,那么模板引擎幾乎就是建筑師在根據(jù)用戶的需求構建框架之前動態(tài)設計計劃。房子的買家(用戶輸入)。



查看完整回答
反對 回復 2024-01-25
?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

Thymeleaf 通過使用模板引擎提供 HTML 頁面來取代 JSP??刂破髡埱?HTML 文件,Spring Boot 在使用提供的模型構建模板后提供該模板。

Thymeleaf很棒,因為它允許您即時重建模板。假設您在前端顯示用戶指向他們,但這些點可能會增加或減少。

您可以做的是使用模型在后臺構建模板。模型引用神奇地提供給解析它的模板。

@RequestMapping(...)

public String request(Model model) {

? ? model.put("points", 5);

? ? return "my-template.html"

}

然后使用 Thymeleaf 語言將您的對象提供給 HTML 文件,以便在運行時在引擎中進行處理。


<html..>

? ? <head>...</head>


? ? <body>

? ? <h1 th:text="${points}"></h1>

</html>

Spring Boots 模板引擎將在后臺構建此模板并將其呈現(xiàn)給用戶,但它將向最終用戶顯示實際的點!希望這會有所幫助。


查看完整回答
反對 回復 2024-01-25
?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

好的,較新的應用程序和網(wǎng)站可能只需加載/啟動/打開一次,然后通過 AJAX 請求拉取或推送數(shù)據(jù),這很好,它可以節(jié)省流量并且速度很快。

但情況并非總是如此,一些框架仍然不會根據(jù)小請求構建所有內(nèi)容。Java 中的 Spring 或 PHP 中的 Symfony 都是 MVC 框架,并使用模板引擎來構建頁面。這聽起來可能有點過時,但仍然有很多網(wǎng)站在使用它。

如果您為 PC 或其他設備速度較慢的客戶構建 Web 應用程序,并且頁面內(nèi)容對性能要求很高,您可能希望在服務器上執(zhí)行盡可能多的工作,以便用戶不必等待很長時間。您還可以緩存渲染的頁面。甚至還有反應頁面的服務器端渲染,例如使初始頁面加載速度更快......

對于Java和Spring,我只使用JSP,我不知道thymeleaf。只需使用您喜歡的內(nèi)容,也許是最受支持/記錄最多的內(nèi)容。

構建這樣的網(wǎng)站并不意味著您不能使用 AJAX,但如果您使用模板,您需要考慮什么是有意義的。


查看完整回答
反對 回復 2024-01-25
?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

讓我困惑的是后端服務器怎么會有html?

“后端”必須具有 HTML,因為這是交付給客戶端并由客戶端呈現(xiàn)的內(nèi)容。

后端“服務器”可能只是一個 CDN,傳送 HTML/JS SPA,但仍然有一些東西傳送內(nèi)容到瀏覽器。

也就是說:服務器端渲染仍然是一個問題,并且最近又重新流行起來——React 應用程序可能會在服務器上完成其初始渲染,因此客戶端再次獲得使用 HTML 和關聯(lián)數(shù)據(jù)渲染的頁面,然后開始就像普通的 SPA 一樣。

我的理解是后端服務器通過AJAX公開API供前端使用,前端將操作這些數(shù)據(jù)并將信息呈現(xiàn)在屏幕上,為什么后端要提供html代碼?

因為有些東西需要運行JS來訪問這些API。

一些歷史:

瀏覽器過去很糟糕。JS 曾經(jīng)是一個簡潔的附加組件,站點相對靜態(tài),并且基本上所有渲染都是在服務器上完成的。后端會從它獲取數(shù)據(jù)的任何地方獲取數(shù)據(jù)并生成完整的 HTML 頁面,除了一些表單字段(也許是一些驗證)之外,客戶端幾乎沒有發(fā)生任何事情,這就是它的范圍。


查看完整回答
反對 回復 2024-01-25
  • 5 回答
  • 0 關注
  • 222 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號