이렇게 쓰던걸 스프링으로 해볼거다
- Model 객체는 스프링 MVC에서 데이터를 뷰로 전달하는 데 사용되는 객체
- model.addAttribute("name", "짱구"); 문장은 Model 객체를 사용하여 데이터를 뷰로 전달하는 역할을 합니다. 여기서는 "name"이라는 속성에 "짱구"라는 값을 추가합니다. 이렇게 추가된 속성은 뷰 템플릿에서 참조하여 데이터를 사용할 수 있습니다.
- ModelAndView 객체를 사용하면 데이터와 뷰 정보를 동시에 설정할 수 있습니다.
- mv.setViewName("sub/myView"); 문장은 ModelAndView 객체의 뷰 이름을 "sub/myView"로 설정합니다. 이는 뷰 리졸버(View Resolver)에 의해 실제 뷰 템플릿 파일인 "sub/myView.jsp"를 찾아 렌더링합니다.
- return mv; 문장은 설정된 ModelAndView 객체를 반환합니다. 반환된 객체는 스프링 MVC에서 처리되어 설정된 뷰 템플릿 파일을 찾고, 데이터를 전달하여 렌더링합니다
package com.study.springboot;
import java.util.ArrayList;
import java.util.List;
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;
@Controller
public class MyController {
@RequestMapping("/")
public @ResponseBody String root() {
return "Model & View";
}
@RequestMapping("/test1")
public String test1(Model model) {
//Model객체를 이용해서 view로 data전달
//setattribute랑 같은데 model객체에 담는다 ->view에 전달이 된다
model.addAttribute("name", "짱구");
return "test1"; //view의 이름 test1.jsp
}
@RequestMapping("/mv")
public ModelAndView test2() {
//데이터와 뷰를 동시에 설정가능
ModelAndView mv = new ModelAndView();
List<String> list = new ArrayList<>();
list.add("test1");
list.add("test2");
list.add("test3");
mv.addObject("lists", list);
mv.addObject("ObjectTest","테스트입니다");
mv.addObject("name","짱구");
mv.setViewName("sub/myView");
return mv;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>myView.jsp</title>
</head>
<body>
<%
out.print("Model(sub) : Hello World");
%>
<br><br>
${ObjectTest }
<br><br>
${lists }
<br><br>
<c:forEach var="mylist" items="${lists }">
${mylist }<br>
</c:forEach>
<br><br>
당신의 이름은 ${name }입니다
</body>
</html>
'Spring > 이론' 카테고리의 다른 글
롬북설치 (0) | 2023.07.19 |
---|---|
Form데이터 //HttpServletRequest == @RequestParam// (0) | 2023.07.18 |
static(정적자원) //jsp사용 (0) | 2023.07.18 |
@Component//@Value//@Autowired /@Qualifier/@SpringBootApplication /@Controller /@RequestMapping/@ResponseBody (0) | 2023.07.18 |
의존성주입 //@Bean (0) | 2023.07.17 |