Spring Boot - Using FreeMarker View

[Updated: Jan 6, 2018, Created: Jan 5, 2018]

To use FreeMarker in Spring Boot application, we just need to include spring-boot-starter-freemarker dependency and place the template file under src/main/resources/templates/ directory (the default location for all template engines in Spring Boot application). The rest of the configurations is done automatically by Spring Boot. Also check out our FreeMarker example with plain MVC to know what are those other configurations.


Maven dependencies


<project .....>

Note that spring-boot-starter-freemarker will pull all freemarker related dependencies and Spring Web MVC dependencies as well.

FreeMarker Template File


<!DOCTYPE html>
<html lang="en">
<h2>FreeMarker View</h3>
	<div> Message: ${msg}</div>
	<div> Time: ${time} </div>

Spring MVC Controller

public class MyController {
  public String handleRequest (Model model) {
      model.addAttribute("msg", "A message from the controller");
      return "my-page";

Spring boot main class

public class ExampleMain {

  public static void main(String[] args) throws InterruptedException {, args);

To try examples, run spring-boot maven plugin (configured in pom.xml of example project below):

mvn spring-boot:run

We can also run the main class from our IDE.


We can also deploy FreeMarker project (or other template based projects) to a servlet container as war. Check out this example.

Example Project

Dependencies and Technologies Used:

  • spring-boot-starter-freemarker 1.5.9.RELEASE: Starter for building MVC web applications using FreeMarker views.
    Corresponding Spring version: 4.3.13.RELEASE
  • JDK 1.8
  • Maven 3.3.9

Spring Boot - FreeMarker View Example Select All Download
  • spring-boot-freemarker-example
    • src
      • main
        • java
          • com
            • logicbig
              • example
        • resources
          • templates

See Also