본문 바로가기

기존카테고리/Spring_문법

Model 과 ModelAndView

package com.test.customTag;


import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;


@Controller

public class TestModelAndView {


@RequestMapping("models/model")

public String testModel(Model model){

model.addAttribute("name", "홍길동");

return "/models/model";

}

@RequestMapping("models/modelAndView")

public ModelAndView testModelAndView(){

ModelAndView mv = new ModelAndView();

mv.addObject("name", "강호동");

mv.addObject("email", "this@daum.net");

mv.setViewName("/models/modelAndView");

return mv;

}

}


Model 은 파라미터 방식으로 메소드 즉 testModel(Model model) 에 Model model 인자를 넣어준다.

또한 돌려줄때는 String형으로 돌려준다.


ModelAndView는 컴포넌트 즉 객체방식으로 작성되고 돌려준다.

그래서 인자가 없으며 돌려주는 데이터형도 ModelAndView이다.


또한 ModelAndView 객체를 생성한다.

예) ModelAndView mv = new ModelAndView();

데이타 추가는 addObject(key, value) 로 추가하며,

페이지 이동값은 setViewName로 페이지를 셋팅한다.


return 값은 ModelAndViewe(위에는 mv)로 돌려준다.



model.jsp


<%@ 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>

<h2>모델테스트</h2>

이름:${name}

</body>

</html>





modelAndView.jsp


<%@ 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>

<h2>ModelAndView 테스트</h2>

이름:${name}

이메일:${email}

</body>

</html>