Hazel Han
Midnight In Coding
Hazel Han
전체 방문자
오늘
어제
  • 분류 전체보기 (46)
    • Back-end (6)
      • java (0)
      • spring frameworks (6)
      • spring boot (0)
    • Front-end (29)
      • React (7)
      • Javascript (0)
      • html (7)
      • css (15)
    • DB (0)
    • Algorithms (2)
    • 회고록 (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스프링
  • springframeworks
  • 저스트코드
  • 기술블로그
  • justcode
  • Java
  • 남궁성
  • 자바의정석
  • 코딩
  • css
  • 회고록
  • 프로그래밍
  • coding
  • Spring
  • HTML
  • React
  • 리액트
  • 자바
  • 개발자
  • 스프링프레임워크

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Hazel Han

Midnight In Coding

Back-end/spring frameworks

스프링 웹개발 방법(컨트롤러의 view 호출 방법)

2023. 9. 26. 10:58

스프링으로 웹 개발을 하는 방법에는 크게 세 가지가 있다. 그 방법은 아래와 같다.

 

 

1. 정적컨텐츠

http request로 localhost:8080/hi.html을 요청하였는데, 컨트롤러에서 해당 액션메소드를 찾을 수 없다면,

resources/static/hi.html를 찾는다.

 

 

2. MVC와 템플릿 엔진

Model, View, Controller를 이용하는 방법이다.

컨트롤러의 액션메소드에서 view의 이름을 return하면, 해당 이름의 view 파일이 호출된다.

 

컨트롤러)

@Controller
public class HiController {
 @GetMapping("hi")
 public String hi(@RequestParam("name") String name, Model model) {
 model.addAttribute("name", name);
 return "hi";
 }
}

View) resources/templates/hi.html

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hi ' + ${name}">hi! visitors</p>
</body></html>

만약 위 컨트롤러의 액션메소드 파라미터의 name에 "고양이"가 들어온다면, hi.html의 ${name}에 "고양이"가 전달되고, view에 hi 고양이가 나온다.

 

 

3. API

 

1)

@Controller
public class HiController {
 @GetMapping("hi")
 @ResponseBody
 public String hiString(@RequestParam("name") String name) {
 return "hi " + name;
 }
}

@ResponseBody 어노테이션

이 어노테이션을 붙이면 일반적인 Controller의 return메소드와 다르게 view의 주소를 return하지 않는다( ViewResolver를 사용하지 않는다).

따라서 return문을 그대로 출력한다(html 형식으로 쓸 필요가 없다).

 

위 코드에서, 만약 request parameter에 name에 "곰돌이"가 들어오면, "hi 곰돌이 "가 그대로 return된다.

 

2)

@Controller
public class HiController {
 @GetMapping("hi")
 @ResponseBody
 public Hi hiApi(@RequestParam("name") String name) {
 Hi hi = new Hi();
 hi.setName(name);
 return hi;
 }
 static class Hi {
 private String name;
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 }
}

@ResponseBody를 사용하고, 객체를 반환하면, JSON 형식으로 변환된다.

저작자표시 (새창열림)

'Back-end > spring frameworks' 카테고리의 다른 글

컴포넌트 스캔  (0) 2023.11.19
싱글톤  (0) 2023.11.19
스프링 컨테이너와 빈  (0) 2023.11.19
좋은 객체 지향 설계의 5가지 원칙(SOLID)  (0) 2023.11.19
@AfterEach, 어노테이션, MVC패턴의 호출 경로  (0) 2023.09.26
    'Back-end/spring frameworks' 카테고리의 다른 글
    • 싱글톤
    • 스프링 컨테이너와 빈
    • 좋은 객체 지향 설계의 5가지 원칙(SOLID)
    • @AfterEach, 어노테이션, MVC패턴의 호출 경로
    Hazel Han
    Hazel Han

    티스토리툴바