@RequestMapping, @Controller, Thymeleaf

지원·2026년 3월 13일

SpringBoot

목록 보기
15/17
post-thumbnail

@RequestMapping

스프링에서 어떤 URL 요청을 어떤 클래스/메서드가 처리할지 연결해주는 어노테이션

  • 클래스 위에 붙이는 경우: 공통 주소를 묶을 때 사용
    예시) 이 컨트롤러는 기본적으로 /app 아래 요청들을 담당하게 된다.
@RestController
@ReqeustMaping("/app")
public class HelloController{
	@GetMapping("/hello")
    public String hello(){
    	return "hello";
        }
    
    @GetMapping("greet")
    public String greet(Model model){
    	model.addAttribte("greet", "Hello");
        return "greet";
    }
}
  • 메서드에 붙이는 경우: 구체적인 요청 주소를 정할 때 사용
    예시) 최종 주소는 `/articles/search'가 된다.
@RestController
@ReqeustMaping("/articles")
public class ArticleController{

	@RequestMapping("/search"){
    	return "검색 결과";
    }
}

@Controller@RestController의 차이

  • @Controller: 화면(View)을 반환할 때 사용
    이 경우 "home"은 보통 home.html,home.jsp같은 화면 파일 이름으로 처리된다. (Thymeleaf 의존성 사용시)
    저장 경로: resources > templates > message
@Controller
public class HomeController {

    @GetMapping("/home")
    public String home() {
        return "home";
    }
}
  • @RestController: 데이터 자체를 반환할 때 사용. 반환값을 http 응답 본문(Response Body)에 그대로 넣어준다. @Controller + @ResponseBody

Thymeleaf 템플릿

  • 템플릿 추가

    업로드중..
  • 아파치 톰캣(8080), 오라클(8080) 포트 충돌로
    서포 포트 8000번으로 수정
    application.yaml
server:
  port: 8000
  • messages.properties 파일
    src/main/resources 폴더에 작성
    업로드중..
✅properties 파일
welcome = 대한민국에 오신 것을 환영합니다.
welcome.city = 대한민국의 수도는 <b>서울</b>입니다.
✅html ${Key} 형식
<p th:text="#{welcome}"></p>
<p th:utext="#{welcome.city}"></p>

th:text: 문자를 텍스트로 그래도 출력
th:utext: html 태그를 해석해서 출력

  • 플레이스홀더
    값이 나중에 들어갈 빈 자리
    {0} = 첫 번째 값이 들어갈 자리
    {1} = 두 번째 값이 들어갈 자리
    {2} = 세 번째 값이 들어갈 자리
✅properties 파일
hello.name=안녕하세요, {0}님!
order.info={0}님이 {1}개 상품을 주문했습니다.
✅html
<p th:text="#{hello.name('지원')}"></p>
<p th:text="#{order.info('지원', 3)}"></p>
✅결과
안녕하세요, 지원님!
지원님이 3개 상품을 주문했습니다.
profile
개발 공부하는 김지원

0개의 댓글