SPRING BOOT
Cách sử dụng Spring Scheduled trong Spring Boot Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java Hướng dẫn Upload file với Spring Boot trong Java Hướng dẫn download file với Spring Boot trong Java Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java Spring Boot là gì? Tại sao sử dụng Spring Boot trong Java Cài đặt Spring Boot trong Java, code một project Spring Boot cơ bản RESTful API là gì? Cách hoạt động của RESTful API trong Spring Boot RESTful API hoạt động qua giao thức HTTP như thế nào? CRUD đơn giản với RESTful API trong Spring Boot Java Các thuộc tính của Spring Boot trong Java Hướng dẫn sử dụng Thymeleaf và Spring Boot trong Java Hướng dẫn sử dụng FreeMarker với Spring Boot trong Java Hướng dẫn sử dụng JSP và Spring Boot trong Java Cách dùng Logging trong Spring Boot Kiến trúc 3layer trong Spring Boot là gì? Cách hoạt động thế nào? Hướng dẫn sử dụng Apache Tiles với Spring Boot trong Java Sử dụng nhiều ViewResolver trong Spring Boot Java Giới thiệu về Spring Boot Actuator trong ứng dụng Spring Boot Cách dùng Spring JDBC trong ứng dụng Spring Boot Java Spring Data JPA trong Spring Boot là gì? Spring Data JPA có gì hay? Tương tác giữa Spring Boot, JPA và cơ sở dữ liệu H2 Cách dùng Spring Email trong Spring Boot Sử dụng @bean trong ứng dụng Spring Boot Cách chuyển HTTP sang HTTPS trong Spring Boot Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền Cách triển khai Spring Boot trên Tomcat Server Sử dụng JUnit để tạo unit test trong Spring Boot Cách test RESTful API trong Spring Boot Tạo ứng dụng Chat với Spring Boot và Websocket Tạo trang web đa ngôn ngữ với Spring Boot trong Java Sử dụng Twitter Bootstrap trong Spring Boot Hướng dẫn sử dụng Interceptor trong Spring Boot Cách tạo Restful Client bằng RestTemplate trong Spring Boot Cách dùng Spring Boot và MongoDB trong Java Cách dùng Spring Boot và Mustache trong Java Cách dùng Groovy trong Spring Boot Java
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Hướng dẫn sử dụng FreeMarker với Spring Boot trong Java

Freemarker là một công cụ mạnh mẽ để tạo ra các template trang web và nó được tích hợp sẵn với Spring Boot, xem cách dùng Freemarker Spring Boot tại đây.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình Freemarker trong Spring Boot, tạo các template và sử dụng chúng để hiển thị dữ liệu từ một controller. Bạn sẽ học được các kiến thức cơ bản để bắt đầu sử dụng Freemarker trong các ứng dụng web Spring Boot của mình.

1. FreeMarker là gì?

freemarker png

FreeMarker

FreeMarker là một công cụ mạnh mẽ để tạo ra các template trang web, được sử dụng phổ biến trong các ứng dụng web Java. Nó cho phép bạn tách biệt hoàn toàn logic của ứng dụng và giao diện người dùng. Với FreeMarker, bạn có thể tạo ra các template được định dạng với những vị trí để điền dữ liệu động vào, như các biến hoặc danh sách dữ liệu, tạo ra các trang web động dễ dàng và nhanh chóng.

FreeMarker cũng có thể được tích hợp với các framework phổ biến như Spring Boot, để tạo ra các ứng dụng web mạnh mẽ và linh hoạt. Nó hỗ trợ nhiều định dạng template như HTML, XML, JSON, CSV, v.v. và được phát triển bởi Apache Software Foundation.

Bài viết này được đăng tại [free tuts .net]

2. Ưu và nhược điểm của FreeMarker:

Ưu điểm của FreeMarker:

  1. FreeMarker cung cấp cú pháp đơn giản và dễ hiểu, giúp cho việc phát triển ứng dụng web trở nên dễ dàng hơn.
  2. FreeMarker có hiệu suất tốt và xử lý template nhanh chóng, cho phép tạo các trang web tốc độ cao.
  3. FreeMarker hỗ trợ tích hợp với Spring Boot, cho phép sử dụng các tính năng của Spring Boot như Dependency Injection, AOP, Security, và nhiều hơn nữa.
  4. FreeMarker cung cấp nhiều tính năng tiện ích như thao tác với biến, lặp lại, điều kiện, và các hàm tiện ích, giúp cho việc lập trình template trở nên dễ dàng hơn.
  5. FreeMarker hỗ trợ nhiều định dạng template như HTML, XML, XHTML, và được phát triển bởi một cộng đồng lớn và hoạt động tích cực.

Nhược điểm của FreeMarker:

  1. FreeMarker có cú pháp phức tạp hơn so với một số công cụ template engine khác, do đó, có thể đòi hỏi thêm thời gian để làm quen với cú pháp của nó.
  2. FreeMarker có ít tính năng mở rộng và plugin hơn so với một số công cụ template engine khác, điều này có thể khiến cho việc mở rộng và tùy chỉnh khó khăn hơn trong một số trường hợp.
  3. FreeMarker có thể không được hỗ trợ tốt trên một số trình duyệt cũ hoặc phiên bản thấp hơn, điều này có thể gây ra một số vấn đề về tương thích khi phát triển ứng dụng web.
  4. FreeMarker không cung cấp các tính năng tiện ích đầy đủ như Thymeleaf, điều này có thể làm cho việc lập trình template trở nên khó khăn hơn trong một số trường hợp.

Tóm lại, FreeMarker là một công cụ template engine mạnh mẽ và linh hoạt được sử dụng rộng rãi trong các ứng dụng web Spring Boot. Mặc dù nó có một số nhược điểm như cú pháp phức tạp hơn và ít tính năng mở rộng hơn so với một số công cụ template engine khác, nhưng nó vẫn là một lựa chọn tốt và phổ biến trong việc phát triển ứng dụng web.

3. Các bước tạo project FreeMarker trên Eclipse

Hôm nay mình sẽ hướng dẫn các bạn xây dựng một project căn bản với FreeMarker. Hãy thực hành theo các bước dưới đây.

Bước 1: Tạo mới một project với Spring Stater Project.

Bạn hãy mở Eclipse và chọn File > New > Spring Stater Project

b1 png

Bước 2: Chọn cấu hình cho project:

Sau khi thực hiện xong bước 1, giao diện bước 2 sẽ mở ra. Trong cửa sổ New Spring Starter Project, nhập tên dự án và chọn Maven Project. Chọn Spring Boot version và chọn các dependencies cần thiết cho dự án, bao gồm Spring Web, DevTool Freemarker. Nhấn Next

4 png

Bước 3: Đặt các thông tin cho project.

Đặt các thông tin cấu hình cho dự án, bao gồm Group và Artifact, và chọn các cấu hình Maven nếu cần thiết. Nhấn Finish để tạo dự án.

Cụ thể:

  1. Trong cửa sổ New Spring Starter Project, nhập tên dự án vào trường "Name".
  2. Chọn "Maven" từ các lựa chọn "Type".
  3. Chọn Spring Boot version cho dự án. Bạn có thể chọn phiên bản mới nhất hoặc phiên bản phù hợp với nhu cầu của mình.
  4. Nhập tên các trường group, artifact, description vào
  5. Nhấn nút "Next" để tiếp tục.

5 png

Bước 4: Tạo Project thành công

Sau khi project được tạo thành công thì sẽ hiển thị như hình bên dưới :

projectFreemarrker png

4. Xây dựng template ứng dụng với FreeMarker trong Spring Boot trên Eclipse.

Với các bước tạo template ở bên trên, bạn đã biết cách tạo một project Spring Boot sử dụng FreeMarker trong Eclipse. Sau đây mình sẽ hướng dẫn bạn tạo một ứng dụng nhỏ áp dụng FreeMarker nhé:

Bước 1: Cấu hình FreeMarker trong ứng dụng

Mở file application.properties trong thư mục src/main/resources

Thêm các cấu hình sau để cấu hình FreeMarker:

spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.suffix=.ftl

Bước 2: Tạo file pom.xml:

Nhấn chuột phải vào dự án và chọn Configure > Add Maven Dependencies để thêm các dependencies của FreeMarker vào file pom.xml của dự án.

Nội dung file pom.xml sẽ giống như sau:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.javatechie</groupId>
	<artifactId>spring-freemarker-example</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-freemarker-example</name>
	<description>freemarker template example</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

Bước 4: Tạo file Model:

Tạo một package trong thư mục src/main/java và đặt tên là com.example.demo.model.

Tạo một class đơn giản trong package vừa tạo với nội dung như sau:

package com.javatechie.freemarker.api;

public class User {
	private int id;
	private String name;
	private String address;

	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 getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public User(int id, String name, String address) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
	}

	public User() {
		super();
	}
}

Bước 5: Tạo file controller:

  • Tạo một controller để xử lý request từ client và trả về các thông tin cho template
  • Ví dụ, tạo file controller.java với nội dung sau:
package com.javatechie.freemarker.api.controller;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import com.javatechie.freemarker.api.User;

@Controller
public class ApplicationController {

	@GetMapping("/greeting/{input}")
	public String greeting(@PathVariable String input, Model model) {
		String welcomeMessage = "Hi " + input + " welcome to java techie";
		model.addAttribute("message", welcomeMessage);
		return "welcome";
	}

	@GetMapping("/getUsers")
	public String getUsers(Model model) {
		List<User> users = Stream
				.of(new User(1, "John", "USA"), new User(2, "Pitter", "IND"), new User(3, "Washim", "PAK"))
				.collect(Collectors.toList())
		model.addAttribute("users", users);
		return "userList";

	}
}

Bước 6: Tạo giao diện template:

Tạo các file template với đuôi .ftl trong thư mục src/main/resources/templates/

Ví dụ, tạo file user.ftl với nội dung sau:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
	href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script
	src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
	src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script
	src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<table class="table table-striped">
			<thead>
				<tr>
					<th>ID</th>
					<th>NAME</th>
					<th>Address</th>
				</tr>
			</thead>
			<tbody>
				<#list users as user>
				<tr>
					<td>${user.id}</td>
					<td>${user.name}</td>
					<td>${user.address}</td>
				</tr>
				</#list>
			</tbody>
		</table>
	</div>
</body>
</html>

Bước 7: Gọi câu lệnh vào file Application để chạy:

package com.javatechie.freemarker.api;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringFreemarkerExampleApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringFreemarkerExampleApplication.class, args);
	}
}

Khi chạy chương trình bạn cần vào file Application như trên để chạy, sau đó ấn Run As => Java Application

runAsApplication png

Bước 8: Chạy file thành công:

Truy cập vào đường dẫn http://localhost:8080/getUsers trên trình duyệt

Nếu mọi thứ diễn ra đúng, bạn sẽ thấy nội dung được hiển thị trên trình duyệt.

kqua2 png

Với các bước trên, bạn đã tạo được một ứng dụng Spring Boot sử dụng FreeMarker trên Eclipse.

5. Các câu hỏi thường gặp

FreeMarker Spring Boot là gì?

FreeMarker là một thư viện mã nguồn mở dùng để tạo các template để hiển thị dữ liệu trên các ứng dụng web. Nó cung cấp cho người phát triển một cách tiếp cận linh hoạt để thiết kế các trang web động.

Làm thế nào để thêm FreeMarker vào dự án Spring Boot trên Eclipse?

Bạn có thể thêm dependency của FreeMarker vào file pom.xml của dự án Spring Boot để sử dụng. Nếu bạn sử dụng Spring Initializr để tạo dự án, bạn có thể chọn dependency của FreeMarker từ danh sách các dependency.

Làm thế nào để tạo một file template FreeMarker trên Eclipse?

Bạn có thể tạo một file template FreeMarker bằng cách tạo một file mới trong thư mục resources/templates của dự án Spring Boot của bạn, sau đó đặt phần mở rộng của tệp là .ftl. Sau đó, bạn có thể sử dụng các biểu thức FreeMarker để tạo ra các template của mình.

Làm thế nào để kết hợp dữ liệu với một file template FreeMarker trên Eclipse?

Bạn có thể sử dụng các biểu thức FreeMarker để truy cập dữ liệu và sử dụng nó trong các template của mình. Để kết hợp dữ liệu, bạn có thể truyền các đối tượng chứa dữ liệu vào các trang được tham chiếu bằng cách sử dụng đối tượng ModelAndView.

Làm thế nào để thực hiện kiểm tra lỗi trong dự án Spring Boot sử dụng FreeMarker trên Eclipse?

Bạn có thể sử dụng các công cụ như Eclipse Debugger hoặc các công cụ khác để kiểm tra lỗi trong dự án Spring Boot của mình. Ngoài ra, bạn có thể sử dụng các công cụ như log4j để ghi lại các thông tin lỗi và thông tin debug của ứng dụng.

5. Kết bài viết

Trong bài viết này, chúng ta đã tìm hiểu cách sử dụng FreeMarker và đã đi qua các bước cụ thể để tạo một ứng dụng Spring Boot sử dụng FreeMarker trên Eclipse. Cuối cùng, chúng ta đã trả lời một số câu hỏi thường gặp khi sử dụng FreeMarker trong Spring Boot trên Eclipse. Nếu bạn đang tìm kiếm một thư viện linh hoạt để thiết kế các trang web động, FreeMarker là một sự lựa chọn tuyệt vời. Bạn có thể sử dụng nó để tạo các template cho các ứng dụng web của mình một cách dễ dàng và nhanh chóng.

Cùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top