<aside> 💡 RedirectAttributes는 일회성으로 데이터를 전달하는 용도로 사용한다.

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>

Untitled

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

Untitled

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

Untitled