国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一起來學(xué)SpringBoot | 第四篇:整合Thymeleaf模板

TZLLOG / 1584人閱讀

摘要:在使用上述模板,默認(rèn)從下加載。介紹是現(xiàn)代化服務(wù)器端的模板引擎,不同與其它幾種模板的是的語法更加接近,并且具有很高的擴(kuò)展性。特點(diǎn)支持無網(wǎng)絡(luò)環(huán)境下運(yùn)行,由于它支持原型,然后在標(biāo)簽里增加額外的屬性來達(dá)到模板數(shù)據(jù)的展示方式。

SpringBoot 是為了簡化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出一個(gè) WEB 工程

在前面幾章中已經(jīng)介紹了如何創(chuàng)建一個(gè)SpringBoot 項(xiàng)目,同時(shí)簡單的描述了SpringBoot REST Web服務(wù)。除此之外它也是支持如JSP、ThymeleafFreeMarkerMustacheVelocity 等各種模板引擎,同時(shí)還為開發(fā)者提供了自定義模板擴(kuò)展的支持。

使用嵌入式Servlet容器時(shí),請(qǐng)避免使用JSP,因?yàn)槭褂肑SP打包后會(huì)存在一些限制。

SpringBoot使用上述模板,默認(rèn)從 src/main/resources/templates下加載。

thymeleaf介紹

Thymeleaf是現(xiàn)代化服務(wù)器端的Java模板引擎,不同與其它幾種模板的是Thymeleaf的語法更加接近HTML,并且具有很高的擴(kuò)展性。詳細(xì)資料可以瀏覽官網(wǎng)。

特點(diǎn)

支持無網(wǎng)絡(luò)環(huán)境下運(yùn)行,由于它支持 html 原型,然后在 html 標(biāo)簽里增加額外的屬性來達(dá)到模板+數(shù)據(jù)的展示方式。瀏覽器解釋 html 時(shí)會(huì)忽略未定義的標(biāo)簽屬性,所以 thymeleaf 的模板可以靜態(tài)地運(yùn)行;當(dāng)有數(shù)據(jù)返回到頁面時(shí),Thymeleaf 標(biāo)簽會(huì)動(dòng)態(tài)地替換掉靜態(tài)內(nèi)容,使頁面動(dòng)態(tài)顯示。所以它可以讓前端小姐姐在瀏覽器中查看頁面的靜態(tài)效果,又可以讓程序員小哥哥在服務(wù)端查看帶數(shù)據(jù)的動(dòng)態(tài)頁面效果。

開箱即用,為Spring提供方言,可直接套用模板實(shí)現(xiàn)JSTL、 OGNL表達(dá)式效果,避免每天因套用模板而修改JSTL、 OGNL標(biāo)簽的困擾。同時(shí)開發(fā)人員可以擴(kuò)展自定義的方言。

SpringBoot官方推薦模板,提供了可選集成模塊(spring-boot-starter-thymeleaf),可以快速的實(shí)現(xiàn)表單綁定、屬性編輯器、國際化等功能。

使用

首先要在 pom.xml 中添加對(duì) thymeleaf 模板依賴


    org.springframework.boot
    spring-boot-starter-thymeleaf

然后創(chuàng)建一個(gè) ThymeleafController 用來映射HTTP請(qǐng)求與頁面的跳轉(zhuǎn),下面寫了兩種方式,第一種比較直觀和優(yōu)雅,第二種相對(duì)普遍且代碼較少,且迎合從struts2跳坑的朋友們...

Spring4.3以后為簡化@RequestMapping(method = RequestMethod.XXX)的寫法,故而將其做了一層包裝,也就是現(xiàn)在的GetMappingPostMapping、PutMapping、DeleteMappingPatchMapping

package com.battcn.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;

/**
 * @author Levin
 * @since 2018/4/23 0023
 */
@Controller
@RequestMapping
public class ThymeleafController {

    @GetMapping("/index")
    public ModelAndView index() {
        ModelAndView view = new ModelAndView();
        // 設(shè)置跳轉(zhuǎn)的視圖 默認(rèn)映射到 src/main/resources/templates/{viewName}.html
        view.setViewName("index");
        // 設(shè)置屬性
        view.addObject("title", "我的第一個(gè)WEB頁面");
        view.addObject("desc", "歡迎進(jìn)入battcn-web 系統(tǒng)");
        Author author = new Author();
        author.setAge(22);
        author.setEmail("1837307557@qq.com");
        author.setName("唐亞峰");
        view.addObject("author", author);
        return view;
    }

    @GetMapping("/index1")
    public String index1(HttpServletRequest request) {
        // TODO 與上面的寫法不同,但是結(jié)果一致。
        // 設(shè)置屬性
        request.setAttribute("title", "我的第一個(gè)WEB頁面");
        request.setAttribute("desc", "歡迎進(jìn)入battcn-web 系統(tǒng)");
        Author author = new Author();
        author.setAge(22);
        author.setEmail("1837307557@qq.com");
        author.setName("唐亞峰");
        request.setAttribute("author", author);
        // 返回的 index 默認(rèn)映射到 src/main/resources/templates/xxxx.html
        return "index";
    }

    class Author {
        private int age;
        private String name;
        private String email;
        // 省略 get set
    }
}

最后在 src/main/resources/templates 目錄下創(chuàng)建一個(gè)名 index.html 的模板文件,可以看到 thymeleaf 是通過在標(biāo)簽中添加額外屬性動(dòng)態(tài)綁定數(shù)據(jù)的




    
    
    Title
    
    


    

Hello World

=====作者信息=====

靜態(tài)效果

雙擊打開 index.html 既可以看到如下的靜態(tài)效果,并未和其它模板一樣顯示一堆標(biāo)簽的內(nèi)容,而是正常渲染靜態(tài)頁面

動(dòng)態(tài)效果

在瀏覽器輸入:http://localhost:8080/index 可以看到渲染后的效果,真正意義上的動(dòng)靜分離了

小技巧
模板熱部署

IntelliJ IDEA 中使用 thymeleaf 模板的時(shí)候,發(fā)現(xiàn)每次修改靜態(tài)頁面都需要重啟才生效,這點(diǎn)是很不友好的,百度了下發(fā)現(xiàn)原來是默認(rèn)配置搞的鬼,為了提高響應(yīng)速度,默認(rèn)情況下會(huì)緩存模板。如果是在開發(fā)中請(qǐng)spring.thymeleaf.cache 屬性設(shè)置成 false。在每次修改靜態(tài)內(nèi)容時(shí)Ctrl+Shift+F9即可重新加載了...

修改默認(rèn)favicon.ico 圖標(biāo)

默認(rèn)情況下使用springboot總能看到一片葉子,這是因?yàn)槲覀儧]配置自己的ico導(dǎo)致的,解決方法也很簡單,只需要在src/main/static/目錄下放置一張名為favicon.ico就可以了

默認(rèn)配置

SpringBoot 默認(rèn)情況下為我們做了如下的默認(rèn)配置工作,熟悉默認(rèn)配置在開發(fā)過程中可以更好的解決問題

總結(jié)

Thymeleaf參考手冊(cè):https://blog.csdn.net/zrk1000/article/details/72667478

WEB MVC詳細(xì)的內(nèi)容請(qǐng)參考官方文檔:https://docs.spring.io/spring/docs/5.0.5.RELEASE/spring-framework-reference/web.html#mvc

目前很多大佬都寫過關(guān)于 SpringBoot 的教程了,如有雷同,請(qǐng)多多包涵,本教程基于最新的 spring-boot-starter-parent:2.0.1.RELEASE編寫,包括新版本的特性都會(huì)一起介紹...

說點(diǎn)什么

個(gè)人QQ:1837307557

battcn開源群(適合新手):391619659

微信公眾號(hào)(歡迎調(diào)戲):battcn

個(gè)人博客:http://blog.battcn.com/

全文代碼:https://github.com/battcn/spring-boot2-learning/tree/master/chapter3

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71365.html

相關(guān)文章

  • Springboot項(xiàng)目搭建(三)整合thymeleaf模板

    摘要:整合模板一文件添加依賴解決標(biāo)簽閉合問題二創(chuàng)建項(xiàng)目結(jié)構(gòu)三配置文件文件同下常用屬性是否開啟模板緩存,默認(rèn)指定模板的編碼,默認(rèn)為指定模板的前綴,默認(rèn)為指定模板的后綴,默認(rèn)為指定模板的模式默認(rèn)為如果使用了依賴設(shè)置為參 springboot整合thymeleaf模板 一、POM文件添加依賴 org.springframework.boot spring-boot-starte...

    GitCafe 評(píng)論0 收藏0
  • SpringBoot非官方教程 | 四篇SpringBoot 整合JPA

    摘要:全稱通過注解或描述對(duì)象關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫中。從功能上來說,就是功能的一個(gè)子集。通過請(qǐng)求測試,代碼已經(jīng)全部通過測試。 JPA全稱Java Persistence API.JPA通過JDK 5.0注解或XML描述對(duì)象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫中。 JPA 的目標(biāo)之一是制定一個(gè)可以由很多供應(yīng)商實(shí)現(xiàn)的API,并且開發(fā)人員可以編碼來實(shí)...

    Flands 評(píng)論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 集成 Thymeleaf(五)

    摘要:數(shù)據(jù)和信息是不可分離的,數(shù)據(jù)是信息的表達(dá),信息是數(shù)據(jù)的內(nèi)涵。數(shù)據(jù)本身沒有意義,數(shù)據(jù)只有對(duì)實(shí)體行為產(chǎn)生影響時(shí)才成為信息。主要目標(biāo)是為開發(fā)提供天然的模板,并且能在里面準(zhǔn)確的顯示。目前是自然更加推薦。 這是泥瓦匠的第105篇原創(chuàng) 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-4-thym...

    姘存按 評(píng)論0 收藏0
  • Springboot+thymeleaf結(jié)合Vue,通過thymeleaf給vue賦值解決Vue的S

    摘要:同時(shí)導(dǎo)航欄鏈接的激活效果,又想用來控制。導(dǎo)航欄的用戶頭像等信息不需要,但有比較復(fù)雜的交互狀態(tài)。思路使用開發(fā)一個(gè)名為的組件,導(dǎo)航欄的內(nèi)容通過傳入組件,導(dǎo)航鏈接通過的插槽特性,由組件控制實(shí)現(xiàn)。然后用來包圍的賦值語法。 前言vue開發(fā)的項(xiàng)目有時(shí)候會(huì)有SEO的需求,由于vue是JavaScript框架,內(nèi)容都在JavaScript...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<