What is @ModelAttribute in Spring MVC?

@ModelAttribute refers to a property of the Model object (the M in MVC 😉
so let’s say we have a form with a form backing object that is called “Person”
Then you can have Spring MVC supply this object to a Controller method by using the @ModelAttribute annotation:

public String processForm(@ModelAttribute("person") Person person){
    person.getStuff();
}

On the other hand the annotation is used to define objects which should be part of a Model.
So if you want to have a Person object referenced in the Model you can use the following method:

@ModelAttribute("person")
public Person getPerson(){
    return new Person();
}

This annotated method will allow access to the Person object in your View, since it gets automatically added to the Models by Spring.

See “Using @ModelAttribute”.

Leave a Comment