Search code examples
javaspring-mvcmodelattribute

What is @ModelAttribute in Spring MVC?


What is the purpose and usage of @ModelAttribute in Spring MVC?


Solution

  • @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".