Spring MVC: RedirectAttributes, chuyển tiếp trang với tham số trong Spring MVC

Spring MVC – Phần 5: RedirectAttributes, chuyển tiếp trang với tham số trong Spring MVC.

Ở bài trước chúng ta đã tìm hiểu cách sử dụng nhiều controller để xử lý 1 request. Vậy làm thế nào để truyền dữ liệu giữa các controller đó?

RedirectAttributes

RedirectAttributes được dùng để truyền các giá trị, tham số giữa các controller khi thực hiện redirect:

Ví dụ: Từ page1 ta gửi tham số name tới method redirect(), bên trong method redirect() sẽ sử dụng RedirectAttributes để chuyển lại tham số name đó tới method page2() xử lý.

package stackjava.com.springmvchello.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.view.RedirectView;

@Controller
public class BaseController {

  @RequestMapping("/")
  public String page1() {
    return "page1";
  }

  @RequestMapping("/redirect")
  public RedirectView redirect(@RequestParam("name") String name, RedirectAttributes redirectAttributes) {
    System.out.println(name);
    redirectAttributes.addAttribute("name", name);
    return new RedirectView("page2");
  }

  @RequestMapping("/page2")
  public String page2(@RequestParam("name") String name, Model model) {
    model.addAttribute("name", name.toUpperCase());
    return "page2";
  }

}

 

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC Redirect</title>
</head>

<body>
  <h2>Page1</h2>
  <form:form method="GET" action="redirect">
    Name: <input type="text" name="name"><br/>
    <input type="submit" value="Redirect" />
  </form:form>
</body>
</html>
<html>
<head>
<title>Spring MVC Redirect</title>
</head>
<body>
  <h2>Page2</h2>
  Hello ${name}
</body>
</html>

Spring MVC - Phần 4: RedirectAttributes, chuyển tiếp trang với tham số trong Spring MVC

 

Spring MVC - Phần 4: RedirectAttributes, chuyển tiếp trang với tham số trong Spring

Download code ví dụ trên tại đây

References:

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/support/RedirectAttributes.html

 

Spring MVC – Phần 4: RedirectAttributes, chuyển tiếp trang với tham số trong Spring MVC

stackjava.com