본문 바로가기

웹 개발(OLD)/Spring Framework(OLD)

컨트롤러에서 브라우저로부터 받은 파라미터 파싱 후 뷰로 값 전달


1. 브라우저에서 Request시 url을 통해 파라미터를 넘기는 경우 이 파라미터를 컨트롤러에서 받아서 뷰로 전달하는 방법
    

여기서는 msg라는 이름의 파라미터를 브라우저에서 컨트롤러로 요청한다고 하고 컨트롤러에서 이름이 msg인 파라미터를 받아서 원하는 뷰에 전달 한다.
위 과정을 @ModelAttribute ("msg") String msg 가 알아서 한다.


그러면 jsp에서는 el을 이용해서 넘어온 msg값을 받아오면 된다.


테스트 해보면 적절히 출력되는 것을 확인할 수 있다.

2. 컨트롤러 상에서 만들어진 결과 데이터(VO)를 뷰로 전달해야 하는 경우

String name과 Integer price를 멤버로 갖는 ProductVO클래스의 객체를 뷰로 넘기고자 할 때, Model 객체에다가 addAttribute하여 보내주면된다.  



그러면 jsp에서는 el을 이용해서 값을 받아온다.


테스트 해보면 적절히 출력되는 것을 확인할 수 있다.


3. 특정 로직을 처리할 때 다른 경로를 호출해야 하는 경우가 있다.

이때 해당 경로에 추가적인 데이터를 담아서 보내는 방법


경로가 /doC 에 매핑되는 컨트롤러에서 로직을 처리할 때 /doD를 호출해야하는 상황이다. 이때 redirect:를 이용하면 된다.

이때 만약 추가적으로 담아서 보낼 데이터가 있으면 RedirectAttributes.addFlashAttribute(키, 값) 으로 보내면 된다.


doD.jsp에서 다음과 같이 el을 이용해서 msg를 받아오도록 해놓고

브라우저에서 localhost:8081/doC를 요청하면 아래와 같이 /doD의 경로로 redirect된 것을 확인할 수 있다.  

그리고 찍힌 로거를 확인해보면 doC가 호출된 후, doD가 호출된 것을 확인할 수 있다.