Category: Spring Updated: Jul 24, 2026

Complete Guide to Spring Model and addAttribute for Java Beginners

Spring Model addAttribute Method Tutorial for Beginners
Spring Model addAttribute Method Tutorial for Beginners

Learn Through a Conversation Between a Teacher and a Student

Student

"How can I pass data from a controller to a view in Spring Boot?"

Teacher

"You can use the Model interface in Spring to pass data to the view."

Student

"What method do I use to add data?"

Teacher

"You use the addAttribute method to store data in the Model."

Student

"Is it difficult to use?"

Teacher

"Not at all. Let’s learn it step by step in a simple way!"

1. What is Model in Spring?

Key Takeaway: Let's dive into the core concepts of "1. What is Model in Spring?" cleanly and effectively.

1. What is Model in Spring?
1. What is Model in Spring?

In Spring Boot, the Model interface is part of the package org.springframework.ui and is used to pass data from the controller to the view. It is a key concept in Spring MVC and is essential for building dynamic web applications.

When you create a web application using Java Spring Boot, you often need to display data on a web page. The Model object acts as a container that holds data and sends it to the view layer such as Thymeleaf templates.

Understanding how Model works is an important part of Java programming basics and a must-know topic for Java beginners.

2. What is addAttribute Method?

2. What is addAttribute Method?
2. What is addAttribute Method?

The addAttribute method is used to add data to the Model object. This data can then be accessed in the view.

It works like a key-value pair, where you assign a name and a value. The view can later retrieve this value using the assigned name.

3. Basic Usage Example

3. Basic Usage Example
3. Basic Usage Example

Let’s look at a simple example of how to use Model and addAttribute in a Spring Boot application.


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

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, Spring Boot!");
        return "hello";
    }
}

In this example, the message is added to the Model and can be displayed in the view.


Hello, Spring Boot!

4. Accessing Data in the View

Key Takeaway: Let's dive into the core concepts of "4. Accessing Data in the View" cleanly and effectively.

4. Accessing Data in the View
4. Accessing Data in the View

Once data is added to the Model, it can be accessed in the HTML template.


<!DOCTYPE html>
<html>
<head>
    <title>Example</title>
</head>
<body>
    <p th:text="${message}"></p>
</body>
</html>

This example uses Thymeleaf to display the value stored in the Model.

5. Adding Multiple Attributes

5. Adding Multiple Attributes
5. Adding Multiple Attributes

You can add multiple values to the Model using the addAttribute method.


@GetMapping("/user")
public String user(Model model) {
    model.addAttribute("name", "John");
    model.addAttribute("age", 25);
    return "user";
}

This allows you to pass multiple pieces of data to the view.

6. Using Objects with Model

6. Using Objects with Model
6. Using Objects with Model

You can also pass entire objects instead of simple values.


@GetMapping("/profile")
public String profile(Model model) {
    User user = new User();
    user.setName("Alice");
    user.setAge(30);
    model.addAttribute("user", user);
    return "profile";
}

This is commonly used in real applications when working with data models.

7. Why Model is Important

Key Takeaway: Let's dive into the core concepts of "7. Why Model is Important" cleanly and effectively.

7. Why Model is Important
7. Why Model is Important

The Model interface is important because it separates the controller logic from the view. This makes your application easier to maintain and understand.

It also follows the MVC design pattern, which is widely used in Java web development.

8. Best Practices for Beginners

8. Best Practices for Beginners
8. Best Practices for Beginners

When using Model and addAttribute, keep these tips in mind:

  • Use meaningful attribute names
  • Keep controllers simple
  • Use objects for complex data
  • Follow MVC design principles

These practices will help you build better Java Spring Boot applications.

Summary

Summary
Summary

Understanding Model and addAttribute in Spring Boot

In this Java tutorial for beginners, we explored one of the most important concepts in Spring Boot development: how to pass data from the controller to the view using the Model interface and the addAttribute method. This concept is a core part of Java programming basics and plays a crucial role in building dynamic web applications.

When learning Java Spring Boot, many beginners struggle with how data flows between different layers of the application. The Model object solves this problem by acting as a bridge between the controller and the view. By storing data inside the Model, you can easily display it in your HTML templates using tools like Thymeleaf.

The addAttribute method is especially important because it allows you to store data in a simple key-value format. This makes it easy to manage and access data in the view. Whether you are working with simple strings, numbers, or complex Java objects, addAttribute provides a flexible and powerful way to pass data.

Key Points You Learned

  • The Model interface is used to pass data from the controller to the view
  • The addAttribute method stores data as key-value pairs
  • You can pass multiple values to the view easily
  • Objects can also be passed, not just simple values
  • Thymeleaf can display Model data using expressions
  • Model helps follow the MVC design pattern

Sample Program for Review

Let’s review a practical example that combines multiple concepts. This will help reinforce how to use Model and addAttribute effectively in a real Spring Boot application.


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

@Controller
public class SummaryController {

    @GetMapping("/summary")
    public String summary(Model model) {
        model.addAttribute("title", "Spring Model Summary");
        model.addAttribute("description", "Learning how to use Model and addAttribute in Spring Boot");
        model.addAttribute("level", "Beginner");
        return "summary";
    }
}

In this example, multiple values are passed to the view. This is a common pattern used in real-world Java Spring Boot applications.


Spring Model Summary
Learning how to use Model and addAttribute in Spring Boot
Beginner

HTML View Example

Here is how you can display the data in a Thymeleaf template. This demonstrates how Model data is rendered in the browser.


<!DOCTYPE html>
<html>
<head>
    <title>Summary Page</title>
</head>
<body>
    <h1 th:text="${title}"></h1>
    <p th:text="${description}"></p>
    <p th:text="${level}"></p>
</body>
</html>

By combining Java backend logic with HTML templates, you can create powerful and dynamic web applications. This is one of the reasons why Spring Boot is widely used in modern Java development.

Why This Knowledge Matters

Learning how to use Model and addAttribute is a foundational skill for Java beginners. It is not just about passing data, but also about understanding how web applications work internally. This knowledge will help you move forward to more advanced topics such as form handling, validation, database integration, and REST APIs.

If you continue learning Java programming basics and practice building small projects, you will quickly become comfortable using these concepts. Over time, you will be able to design clean and maintainable applications using the MVC pattern.

Review Conversation Between the Teacher and Student

Student

"I learned that Model is used to pass data from the controller to the view. It feels like a container for data."

Teacher

"Exactly. The Model holds the data so the view can display it. It is a key part of Spring MVC."

Student

"And addAttribute is the method used to store that data, right?"

Teacher

"Yes. You assign a name and a value, and then you can use that name in the view."

Student

"I also noticed that we can pass multiple values and even objects."

Teacher

"That’s correct. In real applications, you often pass objects like user data or product information."

Student

"Now I understand how data moves from Java code to HTML. It makes building web apps much clearer."

Teacher

"Great! Keep practicing, and soon you will be able to build full Spring Boot applications with confidence."

Back to Category
Latest Articles
New1
Spring
Spring Boot and Java Version Compatibility Guide: Spring Boot 3.5 3.4 3.3 with Java 21 and Java 17
New
New2
Spring
Complete Guide to Spring Data JPA getReferenceById for Beginners
New
New3
Spring
Complete Guide to Spring Data JPA findAll for Beginners
New
New4
Spring
Spring Data JPA JpaRepository Tutorial for Beginners: Complete Guide to Database Access in Spring Boot
New
Popular Articles
No.1
Java&Spring記事人気No1
Spring
Complete Guide to Spring @PreAuthorize for Java Beginners – Secure Your Application with Method-Level Security
No.2
Java&Spring記事人気No2
Spring
Complete Guide to Spring @GeneratedValue for Java Beginners – Understand Primary Key Generation in JPA
No.3
Java&Spring記事人気No3
Spring
Spring Boot GetMapping Tutorial: Complete Guide to GetMapping in Java for Beginners
No.4
Java&Spring記事人気No4
Spring
Spring @Valid Annotation Tutorial for Beginners: Input Validation in Spring Boot
No.5
Java&Spring記事人気No5
Spring
Spring Data JPA Like Query Guide: findByFirstnameLike for Java Beginners
No.6
Java&Spring記事人気No6
Spring
Mastering the @PostMapping Annotation in Java Spring: A Complete Guide for Beginners
No.7
Java&Spring記事人気No7
Spring
Mastering the @Id Annotation in Java Spring: A Complete Guide for Beginners
No.8
Java&Spring記事人気No8
Spring
Mastering the @Entity Annotation in Java Spring: A Complete Guide for Beginners