最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot開發(fā)Web應用詳解

 更新時間:2017年04月27日 16:23:44   作者:翟永超  
這篇文章主要介紹了Spring Boot開發(fā)Web應用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

靜態(tài)資源訪問

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

默認配置

Spring Boot默認提供靜態(tài)資源目錄位置需置于classpath下,目錄名需符合如下規(guī)則:

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

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

渲染W(wǎng)eb頁面

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

模板引擎

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

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

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

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

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

Thymeleaf

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

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

示例模板:

 <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時,當檢查到?jīng)]有的屬性時候會忽略,所以Thymeleaf的模板可以通過瀏覽器直接打開展現(xiàn),這樣非常有利于前后端的分離。

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

 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

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

 @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"; 
  }
}
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8" />
  <title></title>
</head>
<body>
<h1 th:text="${host}">Hello World</h1>
</body>
</html>

如上頁面,直接打開html頁面展現(xiàn)Hello World,但是啟動程序后,訪問http://localhost:8080/,則是展示Controller中host的值:http://www.fzitv.net,做到了不破壞HTML自身內(nèi)容的數(shù)據(jù)邏輯分離。

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

Thymeleaf的默認參數(shù)配置

如有需要修改默認配置的時候,只需復制下面要修改的屬性到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.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支持

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入Java萬物之母Object類詳情

    深入Java萬物之母Object類詳情

    這篇文章主要介紹了Java萬物之母Object類詳情,Object類,它是所有類的默認父類 ,子類不用使用extends關(guān)鍵字繼承它,不管是JDK中的類,還是自定義的類
    2022-06-06
  • Spring MVC實現(xiàn)的登錄攔截器代碼分享

    Spring MVC實現(xiàn)的登錄攔截器代碼分享

    這篇文章主要介紹了Spring MVC實現(xiàn)的登錄攔截器代碼分享,涉及攔截器的簡單介紹,攔截器和過濾器的區(qū)以及攔截器實現(xiàn)代碼等相關(guān)內(nèi)容,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Java?C++題解leetcode817鏈表組件示例

    Java?C++題解leetcode817鏈表組件示例

    這篇文章主要為大家介紹了Java?C++題解leetcode817鏈表組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • MyBatis整合Redis實現(xiàn)二級緩存的示例代碼

    MyBatis整合Redis實現(xiàn)二級緩存的示例代碼

    這篇文章主要介紹了MyBatis整合Redis實現(xiàn)二級緩存的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • java后端返回數(shù)據(jù)給前端時去除值為空或NULL的屬性、忽略某些屬性代碼示例

    java后端返回數(shù)據(jù)給前端時去除值為空或NULL的屬性、忽略某些屬性代碼示例

    在Java開發(fā)中我們處理JSON數(shù)據(jù)時經(jīng)常會遇到空值(null)的情況,這篇文章主要給大家介紹了關(guān)于java后端返回數(shù)據(jù)給前端時去除值為空或NULL的屬性、忽略某些屬性的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Java 向上轉(zhuǎn)型和向下轉(zhuǎn)型的詳解

    Java 向上轉(zhuǎn)型和向下轉(zhuǎn)型的詳解

    這篇文章主要介紹了 Java 向上轉(zhuǎn)型和向下轉(zhuǎn)型的詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java 實戰(zhàn)練習之網(wǎng)上電商項目的實現(xiàn)

    Java 實戰(zhàn)練習之網(wǎng)上電商項目的實現(xiàn)

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實現(xiàn)一個網(wǎng)上電商項目,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • Spring中SmartLifecycle的用法解讀

    Spring中SmartLifecycle的用法解讀

    這篇文章主要介紹了Spring中SmartLifecycle的用法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 淺談Java中static和非static的區(qū)別

    淺談Java中static和非static的區(qū)別

    這篇文章主要介紹了Java中static和非static的相關(guān)內(nèi)容,小編覺得還是很不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • openFeign服務之間調(diào)用保持請求頭信息處理方式

    openFeign服務之間調(diào)用保持請求頭信息處理方式

    這篇文章主要介紹了openFeign服務之間調(diào)用保持請求頭信息處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

嘉峪关市| 阆中市| 兴化市| 兴山县| 和田市| 齐河县| 博乐市| 黄浦区| 筠连县| 刚察县| 贵德县| 中宁县| 通道| 北票市| 利津县| 错那县| 安平县| 新营市| 德江县| 阜阳市| 荃湾区| 墨脱县| 大悟县| 任丘市| 金堂县| 灌云县| 开阳县| 泸溪县| 曲阳县| 汕尾市| 新闻| 逊克县| 黔江区| 嫩江县| 临沭县| 岗巴县| 蒙阴县| 汉源县| 东至县| 金昌市| 永清县|