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