템플릿을 이용한 정보 받아오기

노건우·2023년 9월 22일
0

Spring

목록 보기
6/22

🖥️템플릿을 통한 연결, 정보 받아오기

우선 패키지 익스플로러의 구조부터 파악해야 한다. 템플릿에 html파일이 있어야 연결이 가능하다.

package com.codingbox.core3.basic.response.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;

@Controller
public class ResponseViewController {

	/*ModelView
	 * - 디스패처서블릿에 의해 처리될 뷰를 직접 지정할 수 있고 Model부분에 있는 데이터를 전달 할 수 있도록 한다
	 * */
	@RequestMapping("/response-view-v1")
	public ModelAndView responseViewV1() {
		ModelAndView mav = new ModelAndView("response/hello").addObject("data","datavalue");
		return mav;
		//data가 키 값, datavalue가 value. 즉 datavalue가 값으로 출력
	}
	//@ResponseBody  //이걸쓰면 "response/hello"; 이게 나옴. 화면으로 안넘어가지는 것
	@RequestMapping("/response-view-v2")
	public String responseViewV2(Model model) {
		model.addAttribute("data","hello!!!");
		
		return "response/hello";
	}
}
<!DOCTYPE html>
<html>
<html xmlns:th="http://www.thymeleaf.org">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>Hello.html</h1>
	<p th:text="${data}">empty</p>
</body>
</html>

주석에 대부분의 내용을 작성해놓아 추가 설명이 크게 필요없지만, 간단히 설명해보면 "/response-view-v1"에 액세스하는 경우 responseViewV1 메서드가 실행되고, "/response-view-v2"에 액세스하는 경우 responseViewV2 메서드가 실행된다. 이 메서드는 "data" 속성을 모델에 "hello!!!" 값으로 추가하고 뷰 이름을 "response/hello"로 반환한다.
✍️양쪽 경우 모두 컨트롤러 메서드에 의해 뷰 이름 "response/hello"이 반환되며, 이것은 Spring MVC에게 해당 이름의 Thymeleaf 템플릿을 찾도록 지시한다.
그런 다음 Thymeleaf에 의해 Thymeleaf 템플릿 "hello.html"이 렌더링된다.



둘은 다른 주소로 매핑된다.

⭐또 하나 주목해야 할 부분은 @ResponseBody 이 어노테이션인데, 이것은 화면이 넘어가지지 않고 글자 그대로를 가져와 버린다. 지금까지는 템플릿을 통한 연결이었다.

profile
초보 개발자 이야기

0개의 댓글

관련 채용 정보