메시지 전송

이진규·2022년 1월 20일
1

스프링

목록 보기
5/6

메시지 전송 (+URL 인코딩)

스프링에서 메시지를 담아 전송할때는 3가지 방법이 있다.


@PostMapping("URL1")
public String save(User user, Model m) throws Exception{
	// 1. 유효성 확인
	if (!(isVaild(user))) {
		String msg = URLEncoder.encode("id를 잘못입력하셨습니다.", "utf-8");
           		
              	// 첫번째 방법 : 모델을 쓰지 않고 직접 URL 재작성해서 보냄.
               	return "redirect:URL2?msg="+msg; // URL 재작성
                        
                // 두번째 방법 : 모델에 담아 redirect로 전송하는 방법
                /* 여기서 모델은 URL1의 모델로 URL2로 redirect할때는 URL2에서는 모델을 쓸 수 없게 된다.
                하지만 이 방법이 되는 이유는 스프링이 위의 첫번째 방법이 return 되는 것과 같이 바꿔주기 때문에 이렇게 쓸 수 있는 것이다. */
                m.addAttribute("msg", msg);
                return "redirect:URL2";
                        
                // 세번째 방법 : 모델에 담아 forward로 전송하는 방법
		m.addAttribute("msg", msg);
		return "forward:/register/add";
 	}            
}          		
            

위의 코드와 같이 유효성을 검사하는 등의 작업 등 에서 메시지를 담아 보낼때는 메시지에 URL 인코딩을 반드시 해주어야 한다. 그리고 이를 받는 jsp에서는 반드시 이것을 디코딩을 해야 한다.

jsp에서는 디코더 클래스를 import해주고 해당 메시지를 디코딩 해주면 된다.

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글

관련 채용 정보