체크 사항
- build.gradle 체크
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'net.kdigital'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
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'
}
tasks.named('test') {
useJUnitPlatform()
}
- application.properties 에서 서버 포트번호 체크
# 서버 포트
server.port=9997
기본 포트 8080 사용 -> oracle이 점유 -> 변경(지정)해주어야 한다.
수업 내용에서는 하나의 프로젝트 당 9999 에서 포트번호를 내리고 있다.
MainCotroller 패키지를 만든후 MainCotroller 클래스를 만든다.
Controller Component란?
Client의 요청을 직접적으로 받는 Component( 클래스 선언부에 @Controller 어노테이션을 달고 있다)
Cleint가 url을 통한 요청을 보내면 해당 url에 매칭되는 Controller가 해당 요청을 handle한다.
- 기본 형태
@Controller
public class MainController { // Bean : Spring Container 가 과ㅏㄴ리하는 객체
@GetMapping({"","/"})
public String index(Model model) {
// 첫 요청이 오면 자동 호출
return "index"; // forwading으로 응답. 메시지도 실어서 보낼 수 있다.
}
return "index" 는 src / main/resources 안에 있는 templetes 라는 패키지 안에 만들어둔다.
VScode 에서 간단하게 틀을 만들어 온 후
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymleaf.org" > <!-- 간단한 로직처리 -->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>첫 번째 응답</title>
</head>
<body>
</body>
</html>
다시 Controller 파일로 넘어와 화면에 보이고 싶은 내용을 기입한다.
@GetMapping({"","/"}) : 두가지 방식을 전부 받는 것
model.addAttribute 안하면 서버로 가지 않는다.
public class MainController { // Bean : Spring Container 가 과ㅏㄴ리하는 객체
@GetMapping({"","/"})
public String index(Model model) {
// 첫 요청이 오면 자동 호출
model.addAttribute("name","홍길동");
model.addAttribute("age",25);
model.addAttribute("join_date",LocalDate.now());
return "index"; // forwading으로 응갑. 메시지도 실어서 보낼 수 있다.
}
index.html 작성
1. [[ ${변수명} ]]
바디 태그안에 첫번째응답에 대한 내용을 확인한다.
<body>
<h2>첫 번째 응답</h2>
<h3>방법 -1 </h3>
<p> 이름 : [[ ${name} ]] <!-- 모델에 사용한 키 --></p>
<p> 나이 : [[ ${age} ]]</p>
<p> 가입일 : [[ ${join_date} ]]</p>
</body>
잘 연결이 되었다면 위처럼 기입한 내용이 나올 것이다.
2. th:text=${} : thymeleaf 방법
thymeleaf 방법 에는 index.html 에서 <html lang="ko" xmlns:th="http://www.thymleaf.org" > 적는 것 까먹지 않기
index.html
<hr>
<h3>방법 -2 </h3>
<p> 이름 : <span th:text="${name}">아무개</span></p>
<p> 나이 : <span th:text="${age}">100</span></p>
<p> 가입일 : <span th:text="${join_date}">100년전</span></p>
a 태그로 서버에 데이터 전달하기 (Get요청)
파라미터로 전달
@GetMapping("/input")
public String input(
@RequestParam(name="name",defaultValue="아무개") String name,
@RequestParam(name="age",defaultValue="10") int age,
Model model
){
model.addAttribute("name",name);
model.addAttribute("age", age);
model.addAttribute("join_date",LocalDate.now());
return "index";
}
이름과 나이 전달하기 글씨를 누르면 a태그를 통해 파라미터로 인풋되는 것을 알수 있다.
<hr>
<h3>a태그로 서버에 데이터 전달하기</h3>
<a href="input?name=전우치&age=45">이름과 나이 전달하기</a>
<!-- Get 요청 -->
개념 도움
[Spring Boot] Controller Component 개념 1 (@Controller, @GetMapping, @RequestParam, GET 요청 )
이번엔 Spring MVC에서 C를 담당하고 있는 Controller Component에 대해 알아 볼 것이다. 이때 Component란? 구성요소라는 뜻으로 독립적인 단위 모듈을 뜻한다. 스프링 부트에선 IoC 컨테이너에 등록된 클래
jaeano.tistory.com
'풀스택 개발 학습 과정 > 백엔드(Java, Spring)' 카테고리의 다른 글
[ckeditor 5, spring] 두 개의 테이블이 있을 때 editor 내용 db로 보내기 (0) | 2024.06.23 |
---|---|
[스프링] 게시판 구현 - 1 (게시글 목록 요청) (0) | 2024.03.18 |
[자바] ENUM (0) | 2024.02.13 |
[자바] 입출력 I/O 와 Stream (0) | 2024.01.30 |