一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot開發Web應用詳解

Spring Boot開發Web應用詳解

2020-09-20 14:24翟永超 Java教程

這篇文章主要介紹了Spring Boot開發Web應用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Spring Boot快速入門中我們完成了一個簡單的RESTful Service,體驗了快速開發的特性。在留言中也有朋友提到如何把處理結果渲染到頁面上。那么本篇就在上篇基礎上介紹一下如何進行Web應用的開發。

靜態資源訪問

在我們開發Web應用的時候,需要引用大量的js、css、圖片等靜態資源。

默認配置

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

  1. /static
  2. /public
  3. /resources
  4. /META-INF/resources

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

渲染Web頁面

在之前的示例中,我們都是通過@RestController來處理請求,所以返回的內容為json對象。那么如果需要渲染html頁面的時候,要如何實現呢?

模板引擎

在動態HTML實現上Spring Boot依然可以完美勝任,并且提供了多種模板引擎的默認配置支持,所以在推薦的模板引擎下,我們可以很快的上手開發動態網站。

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

  1. Thymeleaf
  2. FreeMarker
  3. Velocity
  4. Groovy
  5. Mustache

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

示例模板:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
 <thead>
  <tr>
   <th th:text="#{msgs.headers.name}">Name</td>
   <th th:text="#{msgs.headers.price}">Price</td>
  </tr>
 </thead>
 <tbody>
  <tr th:each="prod : ${allProducts}">
   <td th:text="${prod.name}">Oranges</td>
   <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
  </tr>
 </tbody>
</table>

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

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

?
1
2
3
4
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

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

?
1
2
3
4
5
6
7
8
9
10
@Controller
public class HelloController {
  @RequestMapping("/")
  public String index(ModelMap map) {
    // 加入一個屬性,用來在模板中讀取
    map.addAttribute("host", "http://blog.didispace.com");
    // return模板文件的名稱,對應src/main/resources/templates/index.html
    return "index";
  }
}
?
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8" />
  <title></title>
</head>
<body>
<h1 th:text="${host}">Hello World</h1>
</body>
</html>

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

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

Thymeleaf的默認參數配置

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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.

支持JSP的配置

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.didispace.com/springbootweb/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品视频导航 | 国产拍拍 | 免费国产高清精品一区在线 | 天使萌痴汉在线中文字幕 | 国产成人永久免费视 | 国产精品久久香蕉免费播放 | 1314酒色| 亚洲国产成人综合 | www四虎影视 | 欧美性另类69xxxx | 4虎影院在线观看 | 国产性做久久久久久 | 精品免费国产 | 欧美成人乱弄视频 | 国产精品原创视频 | 思思91精品国产综合在线 | 精品国产免费久久久久久婷婷 | 精品高潮呻吟99AV无码 | 国产精品九九免费视频 | 日韩性大片免费 | 久久性综合亚洲精品电影网 | 亚洲国产在线午夜视频无 | 国产性tv国产精品 | 日韩一级精品视频在线观看 | 九九365资源稳定资源站 | 国产欧美精品专区一区二区 | 91香蕉国产在线观看人员 | 99热国产在线观看 | 欧美靠逼视频 | 国产精品成人扳一级aa毛片 | 日韩一区视频在线 | 成年人免费观看的视频 | 国产传媒天美果冻 | 免费超级乱淫播放手机版 | 丝袜美女被艹 | 1919gogo女厕盗摄| 国内自拍网红在综合图区 | 欧美国产影院 | 处女摘花视频 | 亚洲 综合 欧美在线 热 | 国产亚洲精品高清在线 |