當前位置:編程學習大全網 - 遊戲軟體 - 04《Spring Boot 入門教程》使用模板引擎開發 Web 項目

04《Spring Boot 入門教程》使用模板引擎開發 Web 項目

模板引擎這個詞,咋聽起來,有點高大上的意味。

實際上,模板引擎是非常平易近人的技術。譬如大家可能都比較熟悉的 JSP ,就是壹種比較典型的模板引擎。

當瀏覽器將請求拋給控制器,控制器處理好數據後,就跳轉 JSP 等模板引擎頁面。註意在跳轉的同時,還會將數據組裝好,也交給模板引擎處理。

模板引擎會根據數據,和模板引擎的規則,動態生成 HTML 頁面,最後返回給瀏覽器顯示。

我們使用 Spring Boot 開發 Web 項目,大體上有兩種方式。

第壹種方式,是後端服務化的方式,也是當前的主流方式。前端是靜態的 HTML 頁面,通過 Ajax 請求 Spring Boot 的後端接口。 Spring Boot 返回數據壹般采用 JSON 格式,前端接收後將數據顯示。

第二種方式,是采取模板引擎的方式。前端的請求,到達 Spring Boot 的控制器後,控制器處理請求,然後將返回數據交給模板引擎。模板引擎負責根據數據生成 HTML 頁面,最後將 HTML 返回給瀏覽器。

我個人比較推薦第壹種方式,說壹下該方式的幾個優點:

本篇是講模板引擎,也得說說模板引擎的優點,王婆賣瓜不能光誇草莓啊。模板引擎開發的頁面,對搜索引擎 SEO 比較友好;還有就是簡單的頁面,如果用模板引擎開發速度比較快,畢竟模板化的方法,目的就是減少重復提高效率。

Spring Boot 支持的模板引擎種類很多,常見的有 FreeMarker 、 Thymeleaf 、 JSP 。

因為這些模板引擎使用的用戶都不少,所以我們逐壹介紹下其實現過程。

至於孰優孰劣,請各位看官自行評價。正所謂:尺有所短,寸有所長,各取所愛,萬物生長!

本篇我們開發壹個商品瀏覽項目實例。

此處說壹個我個人的經驗:在做壹個項目或壹個模塊的時候,不要壹開始就動手寫代碼,最好是謀定而後動。

我們作為程序員,實際上是整個程序世界的總指揮。應該先整體規劃,再實現局部。這種總分型的開發方法便於我們理順思路,提高編碼效率!

好的,我們來思考下,實現商品瀏覽項目實例的整體流程:

整體流程

可以看到,我們是先建立了控制器方法和頁面,再去實現其中的具體細節。這樣可以讓我們的思維保持連貫性和整體性,在做壹些頁面和方法較多的項目時,會感覺更加順暢。

我們按整體流程,使用 FreeMarker 模板引擎,來實現商品瀏覽功能。

使用 Spring Initializr 創建項目,Spring Boot 版本選擇 2.2.5 , Group 為 com.imooc , Artifact 為 spring-boot-freemarker ,生成項目後導入 Eclipse 開發環境。

引入 Web 項目及 FreeMarker 模板相關的依賴項,代碼如下:

實例:

創建控制器類,由於是商品相關的控制器,所以命名為 GoodsController ,代碼如下:

實例:

我們具體解釋下該類的作用。

我們 resource/templates 目錄下新建商品頁面 goods.ftl ,先不必實現具體功能,代碼如下:

實例:

此時我們啟動項目,然後訪問 .imooc , Artifact 為 spring-boot-thymeleaf ,生成項目後導入 Eclipse 開發環境。

引入 Web 項目及 Thymeleaf 模板相關的依賴項。

實例:

創建控制器類, GoodsController , Thymeleaf 直接使用 HTML 作為模板頁面,故代碼如下:

實例:

我們在 resource/templates 目錄下新建商品頁面 goods.html ,先不必實現具體功能,代碼如下:

實例:

此時我們啟動項目,然後訪問 .imooc , Artifact 為 spring-boot-jsp ,生成項目後導入 Eclipse 開發環境。

引入 Web 項目及 JSP 模板相關的依賴項。

實例:

創建控制器類, GoodsController ,代碼如下:

實例:

手工添加 src/main/webapp 及子目錄如下,同時目錄下放壹個 goods.jsp 用於測試。註意該目錄是壹個 Source Folder 源代碼目錄,不是普通文件夾目錄。

spring-boot-jsp 項目結構

實例:

註意,我們還需要添加壹個視圖解析器,實現 JSP 頁面往指定目錄跳轉。

實例:

此時我們啟動項目,然後訪問 http://127.0.0.1:8080/goods ,即可顯示對應頁面內容。

商品類 GoodsDo ,服務類 GoodsService ,這兩個類與上面沒有區別直接放出代碼。

實例:

實例:

好的,此時我們的控制器就可以註入 GoodsService 類型的組件,然後調用其方法了。

實例:

此時我們可以根據 JSP 模板引擎,按模板規則顯示商品信息了。

實例:

註意我們通過 JSP 的模板語法,輸出了商品列表信息。關於 JSP 模板引擎更多的語法規則,感興趣的同學可以後續查閱更多資料。

啟動項目,打開瀏覽器訪問 http://127.0.0.1:8080/goods ,即可查看輸出結果。

最後大家應該也發現了, FreeMarker 和 Thymeleaf 的用法幾乎是壹模壹樣的,而 JSP 還需要手工添加壹些目錄和配置。

三種方式各有優劣, FreeMarker 模板語法比較簡潔, Thymeleaf 可以直接使用 HTML 作為模板文件, JSP 用戶群體廣泛。

但是三種方式,都是壹種模板引擎而已,將控制器返回數據轉化為 HTML 頁面顯示,本質上沒啥區別,大家對模板引擎有壹個了解即可。

  • 上一篇:電影《東海人魚傳2》上線,這部影片是什麽類型題材作品?
  • 下一篇:制作壹個手機APP商城需要多少錢?
  • copyright 2024編程學習大全網