中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springBoot(5):web開發-模板引擎FreeMarker與thymeleaf

發布時間:2020-07-29 12:32:20 來源:網絡 閱讀:2642 作者:我愛大金子 欄目:開發技術

一、簡介

spring boot的web應用開發,是基于spring mvc。


Spring boot在spring默認基礎上,自動配置添加了以下特性:

 1、包含了ContentNegotiatingViewResolver和BeanNameViewResolver beans。

 2、對靜態資源的支持,包括對WebJars的支持。

 3、自動注冊Converter,GenericConverter,Formatter beans。

 4、對HttpMessageConverters的支持。

 5、自動注冊MessageCodeResolver。

 6、對靜態index.html的支持。

 7、對自定義Favicon的支持。

 8、主動使用ConfigurableWebBindingInitializer bean


二、模板引擎的選擇

FreeMarker

Thymeleaf

Velocity (1.4版本之后棄用,Spring Framework 4.3版本之后棄用)

Groovy

Mustache

注:jsp應該盡量避免使用,原因如下:

 1、jsp只能打包為:war格式,不支持jar格式,只能在標準的容器里面跑(tomcat,jetty都可以)

 2、內嵌的Jetty目前不支持JSPs

 3、Undertow不支持jsps

 4、jsp自定義錯誤頁面不能覆蓋spring boot 默認的錯誤頁面

三、FreeMarker使用

新建一個工程,勾選Freemarker、DevTools(開發方便)

springBoot(5):web開發-模板引擎FreeMarker與thymeleaf

會自動在pom.xml中加入Freemarker的配置:

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


WebController.java:

package com.example.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created by DELL on 2017/6/13.
 */
@Controller
@RequestMapping("/web")
public class WebController {
    private static final Logger logger = LoggerFactory.getLogger(WebController.class);

    @RequestMapping("/index")
    public String index(Model model){
        logger.info("這是一個controller");
        model.addAttribute("title","我是一個例子");
        return "index";  // 注意,不要再最前面加上/,linux下面會出錯
    }
}

index.ftl:

<!DOCTYPE html>
<html>
<head lang="en">
   <title>Spring Boot Demo - FreeMarker</title>
    <link href="/css/index.css" rel="stylesheet" />
</head>
<body>
    <center>
        <img src="/images/logo.png" />
        <h2 id="title">${title}</h2>
    </center>

    <script type="text/javascript" src="/js/jquery.min.js"></script>

    <script>
        $(function(){
            $('#title').click(function(){
                alert('點擊了');
            });
        })
    </script>
</body>
</html>


說明:

 1、視圖默認訪問templates下面,如"index",則:在templates下面找index.ftl

 2、css、js、img等靜態資源則在static下面找,如<link href="/css/index.css" rel="stylesheet" />,則是找static下面的css下面的index.css文件

四、thymeleaf模塊

4.1、簡介

Thymeleaf是一個優秀的面向java的XML/XHTML/HTML5頁面模板,并且有豐富的標簽語言和函數。使用Springboot框架進行界面設計,一般都會選擇Thymeleaf模板。

4.2、使用

引入依賴:

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


配置application.properties文件:

#####################thymeleaf開始#####################################
#關閉緩存
spring.thymeleaf.cache=false
#后綴
spring.thymeleaf.suffix=.html
#編碼
spring.thymeleaf.encoding=UTF-8
#####################thymeleaf結束#####################################

IndexController.java:

@Controller
public class IndexController {
    @RequestMapping("/index")
    public String show(Model model) throws Exception {
        List<User> users = new ArrayList<User>();
        users.add(new User(1L, "zhangsan"));
        users.add(new User(2L, "lisi"));
        users.add(new User(3L, "wangwu"));
        model.addAttribute("hello","我只是一個例子");
        model.addAttribute("users", users);
        model.addAttribute("addtime",new Date());
        return"/helloHtml";
    }
}

main/resources/templates/helloHtml.html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello World!</title>
</head><p th:text="${hello}"></p>
<body>
<h2 th:inline="text">Hello.v.2</h2>
<p th:text="${addtime} ? ${#dates.format(addtime, 'yyyy-MM-dd HH:mm:ss')}"></p>
<select>
    <option>請選擇用戶</option>
    <option th:each="user:${users}" th:value="${user.id}" th:text="${user.name}">
    </option>
</select>
</body>
</html>

瀏覽器中輸入:http://localhost:8989/index ,效果如下:

springBoot(5):web開發-模板引擎FreeMarker與thymeleaf

4.3、thymeleaf功能簡介

在html頁面中使用thymeleaf標簽語言,用一個簡單的關鍵字“th”來標注,如:

<p th:text="${hello}"></p>
<img th:src="@{images/logo.png}" />

其中th:text指定在<p>標簽中顯示的文本,它的值來自"$"所引用的內存變量。

th:src指定img的圖片地址


注意:使用th,需要<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">

 springBoot(5):web開發-模板引擎FreeMarker與thymeleaf


thymeleaf的主要標簽和函數:

th:text,顯示文本。
th:utext,和th:text的區別是針對"unescaped text"。
th:attr,設置標簽屬性
th:if or th:unless,條件判斷語句
th:switch, th:case,選擇語句
th:each,循環語句

#date:日期函數
#calendars:日歷函數
#numbers:數字函數
#strings:字符串函數
#objects:對象函數
#bools:邏輯函數
#arrays:數組函數
#lists:列表函數

詳細標簽請查看官方:http://www.thymeleaf.org/  


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赤城县| 长泰县| 景洪市| 墨江| 高碑店市| 阜宁县| 宿迁市| 二连浩特市| 循化| 六枝特区| 武威市| 上高县| 特克斯县| 菏泽市| 栖霞市| 澜沧| 濮阳市| 吉安县| 长白| 铜鼓县| 黎平县| 松原市| 泰和县| 安乡县| 长沙市| 梁平县| 临夏市| 两当县| 乐业县| 毕节市| 慈利县| 宜阳县| 伊金霍洛旗| 新绛县| 阿合奇县| 巴中市| 仙桃市| 额尔古纳市| 元江| 常熟市| 蓝田县|