使用Thymeleaf把前端成果融合到SpringBoot項目中

一敌呈、創(chuàng)建Web項目

在項目的pox.xml中神妹,引入spring-boot-starter-web依賴。

 <!--web相關依賴-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency></pre>

二磕仅、引入靜態(tài)資源

項目結構

項目結構.png

對于代碼類珊豹,項目類路徑classpath:/ = src\main\java\

對于靜態(tài)資源簸呈,項目類路徑classpath:/ = src\main\resources\

1.通過pom.xml依賴配置形式引入框架資源(Bootstrap.js)

webjars:表示以jar包的方式引入靜態(tài)資源。

webjars官網查找所需引入的靜態(tài)資源及版本號店茶,拷貝對應的<dependency>標簽的內容到本項目的 pom.xml文件中進行引入蜕便,maven自動下載對應的jar包。

應用場景:常規(guī)的主流的前端框架贩幻。

資源訪問方式: http://localhost/webjars/ = classpath:/META-INF/resources/webjars/

2.在系統(tǒng)默認的靜態(tài)資源路徑下加入自定義的靜態(tài)資源(html轿腺、css 、js)

SpringBoot默認在檢索完所有的Controller的@RequestMapping("/……")后丛楚,如果都找不到映射處理吃溅,則默認會去以下路徑尋找靜態(tài)資源進行匹配:

  1. classpath:/META-INF/resources/
  1. classpath:/resources/
  1. classpath:/static/
  1. classpath:/public/
  1. /:當前項目的根目錄下

應用場景: 自定義的靜態(tài)資源。

資源訪問方式: http://localhost/ = classpath:/resources/

拓展:自定義靜態(tài)資源目錄的路徑:

找到項目配置文件\src\main\resources\application.properties鸯檬,通過屬性spring.resources.static-locations進行設置宇攻,將會覆蓋以上默認的靜態(tài)資源路徑赢织。

例如:spring.resources.static-locations = classpath:/private/,classpath:/public/

(備注:spring.resources.static-locations 屬性實質是一個數(shù)組堤结,若要配置多個路徑甩十,使用狐史,號分割乾闰。)

3.為項目設置歡迎頁index.html

在resources的static目錄下新建index.html作為項目的歡迎入口(當用戶訪問根目錄時陨簇,自動跳轉到此index.html頁面)高氮。

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <title>Title</title>
  </head>
  <body>
      <h1>歡迎訪問本系統(tǒng)孽亲!</h1>
  </body>
  </html>

4.為項目設置自定義的葉簽圖標favicon.ico

SpringBoot默認在所有靜態(tài)資源下查找favicon.ico文件坎穿,若找到則自動替換。

三返劲、使用模板引擎把前端頁面融合到項目

由于SpringBoot項目是內置Tomcat玲昧,并且項目最終會編譯打包成jar包形式運行,因此對JSP支持并不友好篮绿。SpringBoot項目更推薦使用模板引擎的方式進行頁面開發(fā)孵延。

Web開發(fā)中的模板引擎是為了使[用戶界面]與業(yè)務數(shù)據(jù)(內容)分離而產生的,它可以生成特定格式的文檔亲配,用于網站的模板引擎就會生成一個標準的HTML文檔尘应。

分類:主流的有三種類型,分別為:“置換型”模板引擎 吼虎、“解釋型”模板引擎“編譯型”模板引擎犬钢。

模板引擎原理圖.jpg

1.引入Thymeleaf依賴

在項目的pox.xml中,引入spring-boot-starter-Thymeleaf依賴思灰。

<!--web:thymeleaf模板引擎-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-thymeleaf</artifactId>
         </dependency>
 ?
 <!--若要使用Thymeleaf3.0版本玷犹,則需要在<properties>中追加設置Thymeleaf版本號和Thymeleaf布局組件支持程序的版本號 -->
 <properties>
     <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
     <thymeleaf.layout-dialect.version>2.1.1</thymeleaf.layout-dialect.version>
 </properties>

2.把靜態(tài)資源引入到項目中

使用Thymeleaf模板引擎后,默認有如下設置:

  • 模板文件的編碼格式:UTF-8

  • 模板文件的格式類型:text/html

  • 模板文件的默認路徑:classpath:/templates/

  • 模板文件的默認后綴:.html

如果要修改Thymeleaf的配置官辈,可以修改項目的配置文件application.properties

  # Enable template caching.
  spring.thymeleaf.cache=true
  # Check that the templates location exists.
  spring.thymeleaf.check-template-location=true
  # Content-Type value.
  spring.thymeleaf.servlet.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=HTML
  # 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

因此箱舞,我們只需把前端開發(fā)好的頁面及相關靜態(tài)資源拷貝到resources\templates\目錄下即可遍坟,頁面內容將由Thymeleaf模板引擎自動渲染,生成最終的.html晴股。

模板引擎組合過程.png

注意:resources\resources\resources\templates\下雖然都是放html文件愿伴,但是它們之間有本質區(qū)別。

  • resources\resources\下放的是靜態(tài)資源电湘,用于<mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">Request直接訪問使用</mark>隔节;
  • resources\templates\下放的是模板文件,<mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">只有Controller能訪問</mark>寂呛。

例如:登錄成功后跳轉login_sucess.html

resources\templates\目錄下新建login_sucess.html

  <!DOCTYPE html>
  <!--xmlns:th="http://www.thymeleaf.org"用于告訴編輯器怎诫,追加thymeleaf語法提示! -->
  <html lang="en" xmlns:th="http://www.thymeleaf.org">
  <head>
      <meta charset="UTF-8">
      <title>Title</title>
  </head>
  <body>
      恭喜贷痪,您登錄成功幻妓!
  </body>
  </html>

3.控制器中增加直接訪問的路由

為了方便測試,我們先直接在UserController控制器中增加路由請求處理劫拢,使得我們通過路由地址直接就能訪問到·登錄成功頁面·肉津。

  import org.springframework.stereotype.Controller;
  ?
  @Controller
  public class UserController {
  ?
      @Autowired
      private IUserService userService;
  ?
      @RequestMapping("/user/login_sucess")
      public String login_sucess(){
          return "login_sucess";
      }
  }

測試:訪問http://localhost/user/login_sucess ,查看是否返回login_sucess.html頁面內容舱沧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末妹沙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子熟吏,更是在濱河造成了極大的恐慌距糖,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牵寺,死亡現(xiàn)場離奇詭異悍引,居然都是意外死亡,警方通過查閱死者的電腦和手機缸剪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門吗铐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杏节,你說我怎么就攤上這事唬渗。” “怎么了奋渔?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵镊逝,是天一觀的道長。 經常有香客問我嫉鲸,道長撑蒜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮座菠,結果婚禮上狸眼,老公的妹妹穿的比我還像新娘。我一直安慰自己浴滴,他們只是感情好拓萌,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著升略,像睡著了一般微王。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上品嚣,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天炕倘,我揣著相機與錄音,去河邊找鬼翰撑。 笑死罩旋,一個胖子當著我的面吹牛,可吹牛的內容都是我干的眶诈。 我是一名探鬼主播瘸恼,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼册养!你這毒婦竟也來了?” 一聲冷哼從身側響起压固,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤球拦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帐我,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坎炼,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年拦键,在試婚紗的時候發(fā)現(xiàn)自己被綠了谣光。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡芬为,死狀恐怖萄金,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情媚朦,我是刑警寧澤氧敢,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站询张,受9級特大地震影響孙乖,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一唯袄、第九天 我趴在偏房一處隱蔽的房頂上張望弯屈。 院中可真熱鬧,春花似錦恋拷、人聲如沸资厉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酌住。三九已至,卻和暖如春阎抒,著一層夾襖步出監(jiān)牢的瞬間酪我,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工且叁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留都哭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓逞带,卻偏偏與公主長得像欺矫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子展氓,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353