Rohit
Rohit

Reputation: 69

How to use @ModelAttributes and @SessionAttribute in spring MVC

I am doing a simple spring MVC project. There are three jsp pages page 1, page 2 and page 3. In page 1 and page 2 I have user form and I want to print two user's details in page 3. I think it could be solved using spring mvc annotation @ModelAttribute and @SessionAttribute but I don't know how to use them. If anyone have any idea about my problem, please help me with a simple example

Upvotes: 1

Views: 876

Answers (1)

codependent
codependent

Reputation: 24482

It's documented in Spring Framework's documentation:

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-sessionattrib

@Controller
@SessionAttributes(value = {"user1", "user2"})
public class MyController {
    // ...

    @GetMapping("/page1")
    public String page1(ModelMap model){
        model.put("user", new User());
        return "page1";
    }

    @PostMapping("/page1")
    public String page1Post(@ModelAttribute("user") User user, ModelMap model{
        model.put("user1", user);
        model.put("user", new User());
        return "page2";
    }

    @PostMapping("/page2")
    public String page2Post(@ModelAttribute("user") User user, ModelMap model{
        model.put("user2", user);
        return "page3";
    }
}

With this user1 and user2 will be available in your page3

Upvotes: 2

Related Questions