Rumah > Java > javaTutorial > teks badan

Bagaimana SpringBoot mengintegrasikan teknologi lapisan paparan Thymeleaf dan FreeMarker

WBOY
Lepaskan: 2023-05-20 14:34:24
ke hadapan
1327 orang telah melayarinya

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>
Salin selepas log masuk

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";
}
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk
@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;
    }
}
Salin selepas log masuk

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>
Salin selepas log masuk

Penerangan kod:

  • Import pertama ruang nama Thymeleaf

  • <🎜 pada baris kedua >
  • 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>
Salin selepas log masuk

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";
    ...
}
Salin selepas log masuk

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>
Salin selepas log masuk
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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan