Spring, java
(Spring, Java) MVC, 템플릿 엔진, port변경
재코딩
2022. 8. 12. 20:51
반응형
1. MVC
model, view, controller의 약자로 3가지의 역할로 구분한 개발 방법론.
1) model: 데이터를 가진 객체로서, 모델의 상태 변화에 따라 컨트롤러와 뷰에게 전달해줌.
2) view: 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 가져오는 것.
3) controller: 사용자가 접근한 Url의 데이터를 파악하여 model에 전달한 후 view에서 반영하여 사용자에게 보여줌.
2. 템플릿 엔진
내장 서버인 톰켓 서버에서 static보다 우선 순위가 높은 controller를 거쳐 key 값이 있다면 Controller내의 key.html을 출력하게 된다. 그렇기 때문에 예제에서 hello-mvc가 Key이기 때문에 param을 통해서 localhost:{port}/key ? name = 입력하고싶은 string입력을 해준다.
결론 :hello-mvc가 있다면 hello-template을 반환하기 때문에 controller에서 viewResolver로 반환한 값의 html을 그려준다.
위 다이어그램은
http://localhost:8080/hello-mvc?name=spring
을 웹사이트에 입력해주었을 경우의 다이어 그램이다.
3. 포트번호 변경하기
src > main > resources > application.properties
의 내용을 변경하여 주면된다.
server.port=9090
저의 경우에는 9090포트를 사용하였다.
4. 코드
1) Controller
package hello.hellospring.controller;
import org.springframework.ui.Model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
// key: data, value: hello!!
model.addAttribute("data", "hello!");
// return name: hello (resources > templates > hello.html)
return "hello";
}
@GetMapping("hello-mvc")
// input: param을 통해서 localhost:{port}/key ? name = 입력하고싶은 string입력
public String hellowMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
}
2) Template
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
반응형