Spring Boot and Apache FreeMarker is a powerful combination for creating dynamic and data-driven web pages. This guide provides an introduction to integrating Spring Boot with FreeMarker, explains the basics of FreeMarker, and offers sample code with explanations for its implementation.

Why Use FreeMarker with Spring Boot?

Apache FreeMarker is a flexible and extensible template engine that offers several advantages when integrated with Spring Boot:

  • Server-Side Rendering: FreeMarker enables server-side rendering of web pages, improving SEO and initial load times.
  • Dynamic Content: FreeMarker allows dynamic content generation and easy integration with server-side data.
  • Customization: FreeMarker templates can be customized and extended to suit your specific needs.

Getting Started with Spring Boot and FreeMarker

To start creating dynamic web pages with Spring Boot and Apache FreeMarker, follow these steps:

  1. Create a Spring Boot project using the Spring Initializr or your preferred IDE.
  2. Add the FreeMarker dependency to your project's pom.xml (Maven) or build.gradle (Gradle) file:
<!-- Maven -->
// Gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-freemarker'
  1. Create a FreeMarker template to define the structure and layout of your web page. Use FreeMarker's syntax for dynamic data insertion:
<!DOCTYPE html>
<title>Dynamic Page</title>
<h1>Hello, FreeMarker!</h1>
  1. Create a Spring Boot controller to handle requests and populate model data. Map the controller method to the FreeMarker template:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
public class PageController {
public String dynamicPage(Model model) {
model.addAttribute("message", "Hello, FreeMarker!");
return "dynamic-page";
  1. Access the dynamic web page by navigating to the URL where the controller method is mapped, e.g., /dynamic.


Spring Boot and Apache FreeMarker is an excellent choice for creating dynamic and data-driven web pages. This guide introduced the integration, explained the benefits of FreeMarker, and provided sample code for building a basic dynamic web page in a Spring Boot application. As you explore this combination further, you'll find it valuable for creating web pages with server-side rendering and dynamic content.