on
SPRING MVC VIEW(뷰 )
SPRING MVC VIEW(뷰 )
컨트롤러 처리 메서드 :
처리 결과를 보여줄 뷰 이름이나 View 객체를 리턴하고, DispatcherServlet는 뷰 이름이나 View 객체를 이용해 뷰를 생성하게 된다.
뷰 이름 명시적 지정은 ModelAndView나 String을 리턴해야 한다.
@RequsetMapping("index.oo")
public ModelAndView index(){
ModelAndView mav = new ModelAndView("index");
.....
return mav;
}
ModelAndView를 리턴할 경우 ModelAndView Class의 생성자나 setViewName() 메서드를 이용해서 뷰 이름을 지정할 수 있다. 위 Code는 ModelAndView Class의 생성자를 이용해서 뷰 이름을 지정하고 있고 그게 아니면 setViewName() 메서드를 사용해도 된다.
ModelAndView mav = new ModelAndView("index");
mav.setViewName("search/gogo");
String 타입 리턴은 문자열 값이 뷰 이름으로 사용된다.
@RequestMapping("help/main.oo")
public String helpMain(ModelMap model){
......
return "help/main";
}
redirect view
뷰 이름에 redirect 접두어를 붙이면, 지정한 페이지로 리다이렉트 된다.
리다이렉트 URL은 두가지 방식으로 입력이 가능
- redirect:/bbs/list : 현재 Servlet 컨텍스트에 대한 상대적인 경로로 리다이렉트
- redirect:http://host/bbs/list - 지정한 절대 URL로 리다이렉트
redirect: 접두어를 사용하여 뷰 이름을 지정 예시.
ModelAndView mav = new ModelAndView();
mav.setViewName("redirect:/error.oo");
return mav;
# redirect와 forward 차이 (짤막 간단 대충..)
forward방식은 web container차원에서 페이지 이동만 존재한다. (즉 정보가 유지되며 이동)
redirect방식은 web container로 명령이 들어오면 웹 브라우저에게 다른 페이지로 이동하라고 명령을 내린다. (URL을 지시된 주소로 바꾸고 해당 주소로 이동해준다.)
from http://workerst.tistory.com/60 by ccl(A) rewrite - 2021-12-22 18:01:33