반응형
컨트롤러는 RequestMapping 어노테이션이 적용된 메서드에서 파라미터로 (Model), 커맨드 객체 등을 받아 파라미터로 받은 객체에 데이터를 저장하고 다시 뷰에 전달해 뷰에서 데이터를 사용할 수 있게 한다. 이렇게 사용되는 모델은 스프링을 사용한 웹 애플리케이션 개발자 가장 기본이 되는 부분이다 .
package com.study.HelloWorld.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.List;
@Controller
public class MyController {
@RequestMapping("/")
public @ResponseBody String root() throws Exception{
return "Model & View";
}
@RequestMapping("/mv")
public String test1(Model model){
model.addAttribute("name","홍길동");
return "mv";
}
@RequestMapping("/test1")
public ModelAndView test2(){
ModelAndView modelAndView = new ModelAndView();
List<String> list = new ArrayList<>();
list.add("test1");
list.add("test2");
list.add("test3");
modelAndView.addObject("lists",list);
modelAndView.addObject("ObjectTest","테스트");
modelAndView.addObject("name","홍길동");
modelAndView.addObject("view/myView");
return modelAndView;
}
}
"/" 을 요청하게 되면
"/mv" 요청하게 되면
"/test1" 요청하게 되면
jsp 설정은 다음과 같다
test1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%out.println("hello world");
%>
<br>
당신의 이름은 ${name}입니다.<br>
objectTest =${ObjectTest}
<br>
${list}
<c:forEach var="mylist" items="${lists}">
${mylist}<br>
</c:forEach>
</body>
</html>
mv
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
당신의 이름은 ${name} 입니다.
</body>
</html>
/mv으로 url 호출이 들어오면 test1 메서드가 실행된다. 이 메서드는 모델을 파라미터로 받아 해당객체 값을 키 ,벨류 값으로 추가 하고 있다. 리턴으로 스트링을 넘기면 뷰 리졸버가 test1.jsp를 찾아온다. 이때 test1.jsp 에서는 조금 전 모델의 데이터를 사용하여 뷰에 데이터를 출력할 수 있게 된다.
/test1 로 url호출이 들어 오면 test2메서드가 실행된다. 이메서드에서는 스트링값을 리턴하지 않고 ModelAndView 라는 객체 변수를 만들어 데이터 정보를 추가학 뷰 정보까지 담아 객체 자체를 리턴한다.
반응형
'Spring' 카테고리의 다른 글
SpringBoot 정적 리소스 사용하기 (0) | 2021.01.17 |
---|---|
Spring Boot 프로젝트 만들기 (0) | 2021.01.11 |
SpringController(Exception) 처리 (0) | 2020.12.05 |
스프링 MVC Controller(ResponseEntity) 타입 (0) | 2020.12.03 |
스프링 MVC Controller(@InitBinder) (0) | 2020.12.03 |