ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • viewResolver
    웹페이지 제작을 위한 스프링공부 2020. 5. 2. 17:42

    viewresolver

    컨트롤러에서 전달 받은 view의 이름을 토대로 jsp를 찾아 선택하고 jsp데이터를 분석해 응답 결과를 만들어 전달하는 요소이다.

     

    동작 과정을 그림으로 표현한후 설명한 사진이다..

    너무 지저분하다.. 컴퓨터로 글씨를 써야하는 상황인데 컴퓨터로 글씨를 쓰는건 너무 힘들다 

    나혼자 이해하면 되니깐 넘어가자... 쩝..

     

    HttpServletRequest

    spring mvc는 jsp를 처리할 때 httpservletrequest객체를 jsp쪽으로 전달합니다

    viewresolver는 이를 이용해 jsp작업시 데이터를 사용할 수 있습니다.

     

    Model

     

     

     

    내장객체인 request객체에 Model객체가 담기고 그것이 viewresolver로 전달된다

    <%@ 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>
    	<a href = "test1">test1</a>
    </body>
    </html>

     

    @GetMapping("/test1")
    	public String test1(Model model) {
    		model.addAttribute("data3",100);
    		model.addAttribute("data4",200);
    		return "test1";
    	}

    request객체에


    model.addAttribute("data3",100);
    model.addAttribute("data4",200);
    return "test1";

    이 부분이 추가로 담기게된다. 그래서 requestScope를 사용하면 데이터 값을 불러올 수 있다.

     

     

    결과

     

    ModelAndView

     

    실제 HttpServletRequest 객체를 주입받은후 데이터를 셋팅한후 return 반환하면 ModelAndView라는 객체가 생성되면서 거기에 데이터가 다 담기게된다. 그리고 그것이 viewResolver로 전달이 된다. 그런데 그 ModelAndView를 직접 주입하는 방법이 이 방법이다.

     

    <%@ 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>
    	<a href = "test4">test1</a>
    </body>
    </html>

     

    @GetMapping("/test4")
    	public ModelAndView test4(ModelAndView mv) {
    		mv.addObject("data1",100);
    		mv.addObject("data2",200);
    		
    		mv.setViewName("test4");
    		
    		return mv;
    	}

     

    <%@ 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>
    	<h3>data1:${requestScope.data1}</h3>
    	<h3>data2:${requestScope.data2}</h3>
    </body>
    </html>

     

     

    출력

     

    '웹페이지 제작을 위한 스프링공부' 카테고리의 다른 글

    form 태그  (0) 2020.05.03
    커맨드 객체 이용하기  (0) 2020.05.02
    객체로 파라미터 주입받기  (0) 2020.05.02
    파라미터 추출하기  (0) 2020.05.02
    url mapping  (0) 2020.05.02
Designed by Tistory.