6. Spring MVC 아주 기초
- Spring/Spring
- 2021. 10. 30.
앞에서 MVC 패턴을 활용한 동적 html을 만들었다. 이번에는 웹서버로부터 동적으로 입력을 받아, 그 값이 나오는 동적 MVC 패턴을 만드는 내용이다.
동적 MVC 패턴 만들기
1. Controller Class에 'hello-mvc'를 추가 mapping한 메서드를 만든다.
생성자에 @requestParam("name") String name 라는 매개변수를 줄 수 있다. 이 매개변수는 웹페이지에서 접근 경로를 "localhost:8080/hello-mvc?name="으로 설정해야한다. 이렇게 하면 name= 뒷쪽에 있는 값들이 requestParam에 있는 "name"에 들어가게 되고, 이 값이 String name 매개변수로 들어가게 된다.
2. name 매개변수를 model.addAttribute를 해서 model에 실어준다. 여기서 key는 "name"으로 했고, data는 name으로 model에 실었다. return 값은 'hello-template'로 했다.
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
3. resource-template 폴더에서 'hello-template' 이름을 가지는 html을 만들어준다. html은 아래와 같이 간단히 만들어준다.
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name} ">hello! empty</p>
</body>
</html>
4. 빌드한 후 "localhost:8080/hello-mvc?name="을 한 후 원하는 값을 뒷쪽에 넣어보면, 동적 페이지에 기입했던 값이 나오는 것을 확인할 수 있다.
위의 동작 방식
위 코드의 동작 방식은 아래와 같이 정리할 수 있다.
- hello-mvc url에서 동적으로 값을 입력 받는다.
- hello-mvc와 mapping 된 controller를 찾아서 메서드를 실행시킨다. 이 때, name 데이터를 모델에 싣고, viewResolver가 'hello-template.html'을 찾는다
- 'hello-template.html'에 data 자리에 name에 들어왔던 데이터가 들어가고, 빌드가 완료되어 웹 브라우저에 전달된다.
추가로 알아두면 좋은 것들
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name} ">hello! empty</p>
</body>
</html>
thymeleaf로 html을 꾸몄을 때, body 부분이 완료되고 난 후에 값이 적혀있는 부분이 있다. 예를 들면 위의 hello! empty 같은 부분이다. 이 부분은 어떤 역할을 할까?
이 부분은 서버에 빌드하지 않고, 절대경로로 찾아갔을 때 보여지는 값이라고 한다. 빌드를 하게 될 경우 hello! empty가 나오지 않지만, 빌드를 하지 않았을 때 웹브라우저에 절대경로를 치고 찾아가면 hello! empty가 보이는 것을 확인할 수 있다. 절대 경로는 IDE에 손쉽게 찾아갈 수 있다.
위와 같이 각 템플릿의 html의 절대주소를 복사할 수 있다. 절대 주소를 복사한 후, 이것은 웹브라우저에 붙여넣으면 다음과 같은 결과가 나온다.
'Spring > Spring' 카테고리의 다른 글
8. 웹 MVC 개발, 회원관리 예제 (0) | 2021.10.31 |
---|---|
7. Spring API 아주 기초 (0) | 2021.10.31 |
5. Spring Boot 정적 컨텐츠 아주 기초 (0) | 2021.10.30 |
4. Spring 빌드하고 실행하기 (WINDOW10) (0) | 2021.10.30 |
2~3. Spring View 환경 설정하기 (0) | 2021.10.30 |