亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring Boot 與 kotlin 使用Thymeleaf模板引擎渲染web視圖的方法

2024-07-13 10:16:46
字體:
來源:轉載
供稿:網友

本篇給大家介紹Spring Boot 與 kotlin 使用Thymeleaf模板引擎渲染web視圖。

靜態資源訪問

在我們開發Web應用的時候,需要引用大量的js、css、圖片等靜態資源,使用Spring Boot 與 kotlin如何去支持這些靜態資源?,很簡單。

默認配置

Spring Boot默認提供靜態資源目錄位置需置于 classpath 下,目錄名需符合如下規則:

/static/public/resources/META-INF/resources

舉例:我們可以在src/main/resources/目錄下創建static,在該位置放置一個圖片文件。啟動程序后,嘗試訪問 http://localhost:8080/ruby.jpg 。如能顯示圖片,配置成功。

渲染Web頁面

之前通過 @RestController 處理請求,返回的內容為json對象。如果需要渲染 html 頁面,要如何實現呢?

模板引擎

在 Spring Boot 推薦的模板引擎下,我們可以很快的上手開發動態網站。

Spring Boot 提供了默認配置的模板引擎主要有以下幾種:

ThymeleafFreeMarkerGroovyMustache

Spring Boot建議使用這些模板引擎,避免使用JSP,若一定要使用JSP將無法實現Spring Boot的多種特性,具體可見后文:支持JSP的配置

當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑為: src/main/resources/templates 。當然也可以修改這個路徑,具體如何修改,可在后續各模板引擎的配置屬性中查詢并修改。

Thymeleaf

Thymeleaf 是一個 XML/XHTML/HTML5 模板引擎,可用于Web與非Web環境中的應用開發。它是一個開源的Java庫,基于Apache License 2.0許可,由Daniel Fernández創建,該作者還是Java加密庫Jasypt的作者。

Thymeleaf提供了一個用于整合Spring MVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如FreeMarker等。Thymeleaf的主要目標在于提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對于編寫邏輯或代碼,開發者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。

示例模板:

<!DOCTYPE html><html xmlns:th="http://www.w3.org/1999/xhtml"><head lang="en"> <meta charset="UTF-8" /> <title>quanke.name</title></head><body><h1 th:text="${host}">Hello World</h1></body></html>

可以看到Thymeleaf主要以屬性的方式加入到html標簽中,瀏覽器在解析html時,當檢查到沒有的屬性時候會忽略,所以Thymeleaf的模板可以通過瀏覽器直接打開展現,這樣非常有利于前后端的分離。

在Spring Boot中使用Thymeleaf,只需要引入下面依賴,并在默認的模板路徑src/main/resources/templates下編寫模板文件即可完成。

compile "org.springframework.boot:spring-boot-starter-thymeleaf:$spring_boot_version"

在完成配置之后,舉一個簡單的例子,在快速入門工程的基礎上,舉一個簡單的示例來通過Thymeleaf渲染一個頁面。

import org.springframework.stereotype.Controllerimport org.springframework.ui.ModelMapimport org.springframework.web.bind.annotation.RequestMapping/** * Created by http://quanke.name on 2018/1/10. */@Controllerclass HelloController { @RequestMapping("/") fun index(map: ModelMap): String {// / 加入一個屬性,用來在模板中讀取 map.addAttribute("host", "http://quanke.name") // return模板文件的名稱,對應src/main/resources/templates/index.html return "index" }}

默認在 src/main/resources/templates 目錄下增加 index.html 文件

<!DOCTYPE html><html xmlns:th="http://www.w3.org/1999/xhtml"><head lang="en"> <meta charset="UTF-8" /> <title>quanke.name</title></head><body><h1 th:text="${host}">Hello World</h1></body></html>

增加使用 kotlin 語言實現的 Spring Boot 啟動方法:

import org.springframework.boot.SpringApplicationimport org.springframework.boot.autoconfigure.SpringBootApplication/** * Created by http://quanke.name on 2018/1/9. */@SpringBootApplicationclass Applicationfun main(args: Array<String>) { SpringApplication.run(Application::class.java, *args)}

如上頁面,直接打開html頁面展現Hello World,但是啟動程序后,訪問 http://localhost:8080/ ,則是展示Controller中host的值:http://quanke.name,做到了不破壞HTML自身內容的數據邏輯分離。

更多 Thymeleaf 的頁面語法,還請訪問Thymeleaf的官方文檔查詢使用。

Thymeleaf的默認參數配置

如有需要修改默認配置的時候,只需復制下面要修改的屬性到 application.yml 中,并修改成需要的值,如修改模板文件的擴展名,修改默認的模板路徑等。

# Enable template caching.spring.thymeleaf.cache=true # Check that the templates location exists.spring.thymeleaf.check-template-location=true # Content-Type value.spring.thymeleaf.content-type=text/html # Enable MVC Thymeleaf view resolution.spring.thymeleaf.enabled=true # Template encoding.spring.thymeleaf.encoding=UTF-8 # Comma-separated list of view names that should be excluded from resolution.spring.thymeleaf.excluded-view-names= # Template mode to be applied to templates. See also StandardTemplateModeHandlers.spring.thymeleaf.mode=HTML5 # Prefix that gets prepended to view names when building a URL.spring.thymeleaf.prefix=classpath:/templates/ # Suffix that gets appended to view names when building a URL.spring.thymeleaf.suffix=.html spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain. spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved.

測試環境或者開發環境避免出現不可預期問題一般設置: spring.thymeleaf.cache=true

支持JSP的配置

Spring Boot并不建議使用,但如果一定要使用,可以參考此工程作為腳手架: JSP 支持

總的來說Kotlin 對于Spring Boot的支持非常好,只需要把Java語言的spring boot使用,翻譯成kotlin就可以。

總結

以上所述是小編給大家介紹的Spring Boot 與 kotlin 使用Thymeleaf模板引擎渲染web視圖的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜xxx| 成人女保姆的销魂服务| 日韩成人av网址| 欧美另类第一页| 九九久久综合网站| 欧美大片免费看| 亚洲精品视频在线观看视频| 亚洲午夜av电影| 久久久久免费精品国产| 日韩经典第一页| 日韩精品在线视频| 亚洲精品一区中文| 成人国产精品免费视频| 26uuu亚洲伊人春色| 国产一区二区丝袜高跟鞋图片| 亚洲一区二区中文| 亚洲直播在线一区| 日韩一区视频在线| 国产日韩换脸av一区在线观看| 91爱爱小视频k| 欧美老女人bb| 欧美性猛交xxxxx免费看| 欧美俄罗斯乱妇| 97视频免费看| 欧美激情综合色综合啪啪五月| 欧美视频在线免费看| 海角国产乱辈乱精品视频| 国产精品普通话| 亚洲二区中文字幕| 国产精品成人久久久久| 欧美在线性视频| 国产精品一区二区三区成人| 国产亚洲人成网站在线观看| 久久久国产一区二区| 国产精品久久久91| 欧美精品在线网站| 国产香蕉一区二区三区在线视频| 91亚洲精品一区二区| 91精品国产乱码久久久久久蜜臀| 国产精品直播网红| 国产精品一区二区久久精品| 国模精品视频一区二区| 欧美成人免费在线视频| 成人网在线免费观看| 日韩精品一区二区三区第95| 8090理伦午夜在线电影| 日韩成人在线网站| 欧美高清在线视频观看不卡| 欧美黑人极品猛少妇色xxxxx| 狠狠色噜噜狠狠狠狠97| 成人黄色片在线| 国产91精品青草社区| 欧美激情免费在线| 久久精品久久久久久| 亚洲精品乱码久久久久久按摩观| 91日本在线视频| 国产精品欧美一区二区| 日韩欧美在线播放| 亚洲va电影大全| 91亚洲精华国产精华| 日本高清+成人网在线观看| 国产欧美在线播放| 成人国产精品久久久久久亚洲| 久久亚洲精品国产亚洲老地址| 久久久91精品国产| 欧美中文字幕视频在线观看| 欧美性猛交xxxx黑人| 91超碰中文字幕久久精品| 成人黄色网免费| 欧美成年人网站| 在线亚洲男人天堂| 亚洲国产美女精品久久久久∴| 在线国产精品视频| 国产在线不卡精品| 亚洲japanese制服美女| 97色在线播放视频| 国产91|九色| 欧美激情日韩图片| 欧美性猛交视频| 成人午夜两性视频| 91免费在线视频网站| 91久久精品国产91久久| 久久在线精品视频| 在线播放国产一区二区三区| 一本一本久久a久久精品牛牛影视| 亚洲毛茸茸少妇高潮呻吟| 欧美激情第6页| 91在线观看免费| 日韩视频免费在线| 日本一本a高清免费不卡| 亚洲国产一区二区三区在线观看| 国产精品第二页| 成人黄色激情网| 神马国产精品影院av| 国产欧美一区二区三区视频| 欧美另类极品videosbest最新版本| 久久99国产综合精品女同| 久久久精品网站| 亚洲第一av网站| 亚洲欧美日韩精品久久奇米色影视| 欧美激情在线观看视频| 国产午夜精品免费一区二区三区| 成人午夜高潮视频| 日韩精品视频在线| 亚洲欧洲国产精品| 亚洲欧美日本另类| 亚洲色图欧美制服丝袜另类第一页| 久久影视电视剧免费网站| 九九精品视频在线观看| 欧美专区在线观看| 久久久久久久久久久亚洲| 国产97在线|亚洲| 97国产suv精品一区二区62| 日韩欧美精品免费在线| 欧美激情综合亚洲一二区| 91黄色8090| 亚洲国产精品电影在线观看| 国产精品久久久久久av福利| 亚洲一区二区三区四区视频| 亚洲二区中文字幕| 中文字幕日韩欧美在线| 亚洲第一男人av| 久久国产精品久久久久久久久久| 久久国产精品视频| 在线播放日韩精品| 懂色av影视一区二区三区| 久久乐国产精品| 欧美精品激情在线观看| 最好看的2019的中文字幕视频| 欧美成人午夜剧场免费观看| 在线看福利67194| 视频一区视频二区国产精品| 国产欧美一区二区| 国产精品一区二区电影| 久久精品国产一区二区三区| 国产精品第一页在线| 大荫蒂欧美视频另类xxxx| 久久69精品久久久久久国产越南| 欧美成人性生活| 午夜免费久久久久| 久热在线中文字幕色999舞| 66m—66摸成人免费视频| 国产综合香蕉五月婷在线| 日本精品免费观看| 成人激情春色网| 琪琪亚洲精品午夜在线| 色悠悠久久88| 国产在线视频欧美| 国产成人久久精品| 色综合五月天导航| 国产不卡精品视男人的天堂| 欧美激情高清视频| 国产精品99久久久久久www| 久久婷婷国产麻豆91天堂| 亚洲美女中文字幕| 久久精品国产91精品亚洲| 91精品国产高清自在线看超| 欧美俄罗斯性视频| 成人午夜在线观看| 九九热这里只有在线精品视| 亚洲视频在线播放| 国产视频欧美视频| 亚洲国产天堂网精品网站| 国产成人精品最新|