Spring

Spring [스프링] 공부 (21.11.18)

오잎 클로버 2021. 11. 18. 15:00
728x90

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