Spring MVC - ViewResolver
2020. 9. 8. 20:21ㆍJava/Spring
반응형
ViewResolver
- 컨트롤러에서 전달 받은 View의 이름을 토대로 jsp를 찾아 선택하고 jsp 데이터를 분석해 응답결과를 만들어 전달하는 요소
- 본 과정에서는 ViewResolver가 사용할 View의 이름을 지정하는 방법과 jsp 를 통해 응답 결과를 만들 때 필요한 데이터를 전달하는 방법에 대해 알아본다.
- ViewResolver에 의해 JSP가 실행되고 응답결과가 만들어진다.
- Controller 에서 View를 지정할 때 ViewResolver가 사용할 데이터를 Request 영역에 저장할 수 있다.
기본적으로 페이지로 데이터를 전달하는 것은 model2와 비슷하다.
<%@ 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?data1=100&data2=200">test1</a>
</body>
</html>
위의 get 방식을 전달하고자 하면 아래와 같이 컨트롤러에 경로만 작성하고 받아도 전달이 된다.
@Controller
public class TestController {
@GetMapping("/test1")
public String test1() {
return "test1";
}
}
test1.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>
data1 :${param.data1}
data2 :${param.data2}
</body>
</html>
이 외에 방법으로 데이터를 받아와 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?data1=100&data2=200">test1</a>
<a href="test2?data1=100&data2=200">test2</a>
<a href="test3?data1=100&data2=200">test3</a>
<a href="test4?data1=100&data2=200">test4</a>
</body>
</html>
HttpServletRequest
- Spring MVC는 jsp 를 처리할 때 HttpServletRequest 객체를 jsp 쪽으로 전달한다.
- ViewResolver는 이를 이용해 JSP 작업시 데이터를 사용할 수 있다.
@GetMapping("/test2")
public String test2(HttpServletRequest request) {
request.setAttribute("data1",100);
request.setAttribute("data2",200);
return "test2";
}
Model
- Model 객체를 주입 받아 셋팅하면 HttpServletRequest 객체에 담겨 이를 JSP로 전달할 수 있다.
- HttpServletRequest 보다 더 기능이 많다.
@GetMapping("/test3")
public String test3(Model model) {
model.addAttribute("data1",100);
model.addAttribute("data2",200);
return "test3";
}
ModelAndView
- ModelAndView는 Model에 값을 셋팅하는 기능과 View의 이름을 지정하는 기능을 모두 가지고 있다.
@GetMapping("/test4")
public String test4(ModelAndView mv) {
mv.addObject("data1",100);
mv.addObject("data2",200);
return "test4";
}
반응형
'Java > Spring' 카테고리의 다른 글
Spring MVC - Form 커스텀 태그 (0) | 2020.09.09 |
---|---|
Spring MVC - 커맨드 객체(Bean 객체를 통한 전달) (0) | 2020.09.08 |
Spring MVC - 객체를 통한 파라미터 주입 (0) | 2020.09.06 |
Spring MVC - 파라미터 추출 (0) | 2020.09.06 |
Spring MVC - 요청방식(Get,Post) (0) | 2020.09.05 |