<aside>
💡 RedirectAttributes는 일회성으로 데이터를 전달하는 용도로 사용한다.
주로 성공 메시지를 보내거나 실패 메시지를 일회성으로 보냄
페이지 새로고침하면 사라짐 </aside>
RedirectAttributeMemberController.java
package kr.or.ddit.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import kr.or.ddit.vo.Member;
import lombok.extern.slf4j.Slf4j;
@Controller
@RequestMapping("/redirectattribute")
@Slf4j
public class RedirectAttributeMemberController {
/*
* 4. RedirectAttribute 타입
* - RedirectAttribute는 일회성으로 데이터를 전달하는 용도로 사용한다.
*/
@RequestMapping(value="/registerForm", method = RequestMethod.GET)
public String registerForm() {
return "member/registerRedirectAttributeForm";
}
@RequestMapping(value="/register", method = RequestMethod.POST)
public String register(Member member, RedirectAttributes redirectattribute) {
log.info("register() 실행...!");
redirectattribute.addFlashAttribute("msg", "success");
return "redirect:/redirectattribute/result";
}
@RequestMapping(value="/result", method = RequestMethod.GET)
public String result() {
log.info("result() 실행...!");
return "result";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>registerRedirectAttributeForm</title>
</head>
<body>
<h3>registerRedirectAttributeForm</h3>
<form action="/redirectattribute/register" method="post">
userId : <input type="text" name="userId" value="hongkd"/><br>
password : <input type="text" name="password" value="1234"/><br>
<input type="submit" value="register"><br>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
userId : ${userId }<br>
password : ${password }<br>
member.userId : ${member.userId }<br>
member.password : ${member.password }<br>
<br>
msg : ${msg }<br>
</body>
</html>

버튼을 클릭하면 일회성 메시지만 오는 것을 볼 수 있고

여기서 페이지 reload를 시키면 해당 일회성 메시지는 사라지는 것을 볼 수 있다.
