Rumah  >  Artikel  >  Java  >  Bagaimana SpringBoot mengintegrasikan teknologi lapisan paparan Thymeleaf dan FreeMarker

Bagaimana SpringBoot mengintegrasikan teknologi lapisan paparan Thymeleaf dan FreeMarker

WBOY
WBOYke hadapan
2023-05-20 14:34:241236semak imbas

Integrate Thymeleaf

Thymeleaf ialah generasi baharu enjin templat Java, serupa dengan enjin templat Java tradisional seperti Velocity dan FreeMarker. Berbeza daripada enjin templat Java tradisional, Thymeleaf menyokong prototaip HTML, yang membenarkan jurutera bahagian hadapan untuk terus membuka dan melihat gaya dalam penyemak imbas, dan jurutera bahagian belakang untuk melihat kesan paparan berdasarkan data sebenar. Rakan sekerja, Spring Boot menyediakan penyelesaian konfigurasi automatik Thymeleaf, jadi sangat mudah untuk menggunakan Thymeleaf dalam Spring Boot. Berikut ialah langkah yang tersedia untuk menyepadukan Thymeleaf ke dalam Spring Boot

1 Cipta projek dan tambah kebergantungan

Buat projek Spring Boot, dan kemudian tambah spring-boot-starter-web dan spring. -boot-starter-thymeleaf bergantung pada

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--    整合Thymeleaf    -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2. Configure Thymeleaf

Spring Boot menyediakan Thymeleaf dengan kelas konfigurasi automatik ThymeleafAutoConfiguration sifat konfigurasi yang berkaitan adalah dalam kelas ThymeleafProperties kod kelas ThymeleafProperties adalah seperti berikut:

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {
	private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;
	public static final String DEFAULT_PREFIX = "classpath:/templates/";
	public static final String DEFAULT_SUFFIX = ".html";
}

Seperti yang anda lihat daripada konfigurasi ini, lokasi templat lalai ialah classpath:/templates/ dan akhiran templat lalai ialah .html. Apabila menggunakan IDEA untuk mencipta projek Spring Boot, beberapa fail akan dibuat dalam folder templat secara lalai. Jika anda perlu menyesuaikan parameter konfigurasi Thymeleaf lalai, anda boleh mengkonfigurasinya dalam application.properties Beberapa konfigurasi biasa adalah seperti berikut:

#Sama ada untuk mendayakan caching, ia boleh ditetapkan kepada palsu semasa pembangunan. , dan lalai adalah benar
spring.thymeleaf.cache=false
#Semak sama ada templat wujud, lalainya adalah benar
spring.thymeleaf.check-template=true
#Semak sama ada templat lokasi wujud, lalainya adalah benar
spring.thymeleaf.check-template-location=true
#Pengekodan fail templat
spring.thymeleaf.encoding=UTF-8
#Lokasi fail templat
spring.thymeleaf.prefix=classpath:/ templates/
#Content-Type configuration
spring.thymeleaf.servlet.content-type=text/html
#Templat fail akhiran
spring.thymeleaf.suffix =.html

3 Konfigurasikan pengawal

untuk mencipta kelas entiti Buku, dan kemudian kembalikan ModelAndView dalam Pengawal, seperti berikut:

public class Book {
    private int id;
    private String name;
    private String author;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
}
@RestController
public class BookController {
    @GetMapping(value = "/books")
    public ModelAndView books(){
        List<Book> books = new ArrayList<>();
        Book b1 = new Book();
        b1.setId(1);
        b1.setAuthor("唐家三少");
        b1.setName("斗罗大陆Ⅰ");
        Book b2 = new Book();
        b2.setId(2);
        b2.setAuthor("唐家三少");
        b2.setName("斗罗大陆Ⅱ");
        books.add(b1);
        books.add(b2);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("books",books);
        modelAndView.setViewName("books");
        return modelAndView;
    }
}

4. . Cipta paparan

dalam direktori sumber Cipta books.html dalam direktori templat, seperti berikut:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>图书列表</title>
</head>
<body>
<table border="1">
    <tr>
        <td>图书编号</td>
        <td>图书名称</td>
        <td>图书作者</td>
    </tr>
    <tr th:each="book:${books}">
        <td th:text="${book.id}"></td>
        <td th:text="${book.name}"></td>
        <td th:text="${book.author}"></td>
    </tr>
</table>
</body>
</html>

Penerangan kod:

  • Import pertama ruang nama Thymeleaf

  • Paparkan data dalam buku melalui traversal Dalam Thymeleaf, th:each digunakan untuk traversal koleksi dan th:text digunakan untuk memaparkan data

  • 5 Jalankan

Masukkan "http://localhost:8081/books" dalam penyemak imbas untuk melihat hasil yang sedang dijalankan, seperti yang ditunjukkan dalam rajah:

Bagaimana SpringBoot mengintegrasikan teknologi lapisan paparan Thymeleaf dan FreeMarkerIntegrate FreeMarker

FreeMarker ialah sejarah Enjin templat yang telah lama wujud sesuai untuk kedua-dua persekitaran web dan bukan web. FreeMarker perlu dihuraikan sebelum ia boleh dipaparkan dalam penyemak imbas. FreeMarker boleh digunakan bukan sahaja untuk mengkonfigurasi templat halaman HTML, tetapi juga sebagai templat e-mel, templat fail konfigurasi dan templat kod sumber. Langkah penyepaduan adalah seperti berikut:

1 Cipta projek dan tambah kebergantungan

Buat projek Spring Boot, dan kemudian tambah spring-boot-starter-web dan spring-boot-starter-. kebergantungan penanda percuma, seperti berikut:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--    整合FreeMarker    -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2. Konfigurasikan FreeMarker

Spring Boot juga menyediakan kelas konfigurasi automatik FreeMarkerAutoConfiguration untuk FreeMarker Properties adalah seperti berikut:

@ConfigurationProperties(prefix = "spring.freemarker")
public class FreeMarkerProperties extends AbstractTemplateViewResolverProperties {
	public static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";
	public static final String DEFAULT_PREFIX = "";
	public static final String DEFAULT_SUFFIX = ".ftl";
    ...
}

FreeMarker lalai Lokasi templat adalah sama dengan Thymeleaf, kedua-duanya dalam classpath:/templates/. Akhiran fail lalai ialah .ftl , seperti berikut:

3. Pengawal

Pengawal adalah sama dengan pengawal dalam Thymeleaf, jadi ia tidak akan berulang di sini

4 >

Buat fail books.ftl dalam direktori templat di bawah direktori sumber, seperti berikut :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书列表FreeMarker</title>
</head>
<body>
<table border="1">
    <tr>
        <td>图书编号</td>
        <td>图书名称</td>
        <td>图书作者</td>
    </tr>
    <#if books ?? && (books?size>0)>
    <#list books as book>
        <tr>
            <td>${book.id}</td>
            <td>${book.name}</td>
            <td>${book.author}</td>
        </tr>
    </#list>
    </#if>
</table>
</body>
</html>

Penjelasan kod:

Mula-mula tentukan bahawa buku dalam model boleh dikawal dan ada adalah data dalam buku, dan kemudian melintasi

5 Jalankan

Masukkan "http://localhost:8081/books" dalam penyemak imbas untuk melihat hasil yang sedang dijalankan, seperti yang ditunjukkan dalam rajah. :

Atas ialah kandungan terperinci Bagaimana SpringBoot mengintegrasikan teknologi lapisan paparan Thymeleaf dan FreeMarker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam