MVC 설명과 더불어 스프링에서의 구현관련 하여 이해한 대로 적어보고자한다.
mvc는 Model, View, Controller 로서 사용자 인터페이스, 데이터 및 논리 제어를 구현하는 데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는 데 중점을 두고 있습니다. 더 나은 업무의 분리와 향상된 관리를 제공하기 위해 사용합니다.
예를 들어 view 파일에 모델도 있고, 컨트롤러도 있다면 굉장히 복잡하여, 이를 작성한 사람도 해석하는 데 한 나절이 걸릴 수 있거나, 가독성이 없어지기 때문에 사용합니다.
이를 스프링에서는 간단하게는 아래와 같이 구현이 가능합니다.
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value="name") String name, Model model) {
model.addAttribute("name", name);
return "hello-mvc";
}
위 방식과 같이 controller에 작성한 후, return string과 동일한 이름을 가진 html 파일을 만들면 아주 간단하게 mvc를 구현한 것입니다.
아래가 html 소스입니다.
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org" lang="en">
<body>
<p th:text="'Hello, '+ ${name}">Hello, Empty</p>
</body>
</html>
※xmlns는 thymeleaf를 사용하겠다고 선언
접근 방식은 http://localhost:8080/hello-mvc?name=spring 처럼 접근하면
해당 name이 model.addAttribute를 사용하여 name을 name으로 선언한 후, 반환하는 원리를 거쳐
Hello, spring 이라는 문구가 나옵니다.
@RequestParam은 '?'를 사용하여 인자값을 받겠다는 의미입니다.
value는 원하는 변수명 (해당 변수명을 String으로 받고, 변수명은 name으로 하겠다는 의미입니다.)
예)
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value="username") String name, Model model) {
model.addAttribute("username", name);
return "hello-mvc";
}
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org" lang="en">
<body>
<p th:text="'Hello, '+ ${username}">Hello, Empty</p>
</body>
</html>
위 처럼한 후, http://localhost:8080/hello-mvc?name=workshop6349 라고 접근을 하면
Hello, workshop6349 라는 문구가 나옵니다.
그렇다면 Hello, Empty는 어떠한 text인지 궁금하실 수 있으십니다.
이는 절대 혹은 상대 주소로 접근을 할 경우 default로서 나오는 텍스트입니다.
이상입니다.
'Spring' 카테고리의 다른 글
Spring & React 결합 (최종) (0) | 2022.01.14 |
---|---|
Spring & React 결합 (f. CORS해결) (2) | 2022.01.12 |
Spring & React 결합 (0) | 2022.01.12 |
스프링 어노테이션 Value (0) | 2022.01.10 |
Spring [스프링] 공부 (21.11.13) (0) | 2021.11.13 |