Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Q 클래스
- jpa에러
- Filter
- jwt메서드
- json gson 차이
- spring서버
- github
- git
- ERD 작성
- 인텔리제이
- uncheck Exception
- 1차캐시
- JPA
- Unsatisfied dependency
- 스프링부트오류
- JPA주의사항
- JoinColumn
- queryDSL
- 빈생성안됨
- json
- REST API 규칙
- 복합키
- Error creating bean with name
- @IdClass
- 최종 프로젝트
- 스프링 부트 공식 문서
- jpa회원가입
- REST란
- 스프링 부트 기능
- Spring Spring boot 차이
Archives
- Today
- Total
Everyday Dev System
Spring Boot Controller REST API 기초 실습 본문
1. @ResponseBody를 기재시에는 String 타입으로 반환,
미 기재 시에는 [resources] - [templates] 안에서 Hello World.html파일을 찾음.
package com.sparta.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@GetMapping("/api/hello")
@ResponseBody
public String hello() {
return "Hello World";
}
}
2. postman 실행해서 요청 보내기
3. get , post , put , delete 메서드 모두 활용하기
package com.sparta.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "Hello World!!";
// @ResponseBody를 안 달아주면 resources-templates 안에 해당 html파일을 찾음.
}
@GetMapping("/get")
@ResponseBody
public String get() {
return "GET Method 요청";
}
@PostMapping("/post")
@ResponseBody
public String post() {
return "POST Method 요청";
}
@PutMapping("/put")
@ResponseBody
public String put() {
return "PUT Method 요청";
}
@DeleteMapping("/delete")
@ResponseBody
public String delete() {
return "DELETE Method 요청";
}
}
4. 정적인 페이지 & 동적인 페이지
정적인 페이지는 http://localhost:8081/hello.html 로 접근
위와 같은 직접 접근이 아닌,
Controller 통해서도 접근 가능하지만, 동적인 페이지가 아니므로 의미가 없다.
Thymleaf 의존성을 추가하면 Controller에서 html을 찾을때 templates 폴더에서만 찾는다.
-> 동적인 HTML파일을 만들기 위해 추가한 라이브러리 이므로
<<정적인 페이지를 Controller를 통한 접근 방법>>
1) Thymleaf 의존성 제거
- build.gradle에서 주석 처리 한 후, 다시 gradle을 build
dependencies {
// implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
2) Thymleaf 주석 처리 하지 않고, redirect:/hello.html 로 가능.
여기서 주의할 점은, [templates] 내에 있는 html을 찾을때는 ".html" 확장자는 미기재
package com.sparta.springmvc.html;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HtmlController {
@GetMapping("/static-hello")
public String hello() {
return "hello.html";
}
@GetMapping("/redirect")
public String htmlStatic() {
return "redirect:/hello.html";
}
@GetMapping("/html/templates")
public String htmlTemplates() {
return "hello";
}
}
1. Model.addAttribute()
코드 전체 보기
더보기
templates/hello-visit.html
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Hello Spring</title></head>
<body>
<div>
Hello, Spring 동적 웹 페이지!!
</div>
<div>
(방문자 수: <span th:text="${visits}"></span>)
</div>
</body>
</html>
Controller.java
package com.sparta.springmvc.html;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HtmlController {
private static long visitCount = 0;
@GetMapping("/html/dynamic")
public String htmlDynamic(Model model) {
visitCount++;
model.addAttribute("visits",visitCount);
return "hello-visit";
}
}
1) Controller 클래스 내에 메소드에서 아래 코드를 입력
model.addAttribute("visits",visitCount);
2) html 파일에서 아래 코드를 통해 접근 가능.
<div>
(방문자 수: <span th:text="${visits}"></span>)
</div>
'내배캠 주요 학습 > Spring 입문' 카테고리의 다른 글
스프링에서 클라이언트가 서버에 값을 전달하는 방식 (1) | 2023.06.13 |
---|---|
@RestController 와 @Controller의 차이 (0) | 2023.06.13 |
스프링 자바에서 json 반환 및 변환하는 방법 (1) | 2023.06.13 |
1-9 : Spring MVC란 무엇인가? (0) | 2023.06.13 |
스프링 입문 강의 1주차 : 1-1 ~ 1-7 (0) | 2023.06.12 |