| 구분 | 설명 | 예시 |
|---|---|---|
| 공통 조각 정의 | 특정 영역을 fragment로 지정 | <th:block th:fragment="navLayout"> |
| 공통 조각 포함 | 다른 HTML에서 해당 fragment 삽입 | <th:block th:replace="~{include/nav :: navLayout}"/> |
| 내용 삽입 영역 | 각 페이지 고유 내용이 들어갈 자리 | <th:block layout:fragment="content"> |
@Controller
public class BoardController {
@GetMapping("/board") // 전체 조회
public String selectBoardList() {
return "/board/list";
}
@PostMapping("/board") // 생성
public String createBoard(int flag) {
return "/board/create";
}
@PatchMapping("/board/{id}") // 수정
public String updateBoard(@PathVariable("id") Long id) {
return "/board/update";
}
@DeleteMapping("/board/{id}") // 삭제
public String deleteBoard(@PathVariable("id") Long id) {
return "/board/delete";
}
}
fetch(url, options)
.then(response => response.json())
.then(data => {
// 데이터를 성공적으로 받아왔을 때 처리하는 코드
console.log(data);
})
.catch(error => {
// 에러가 발생했을 때 처리하는 코드
console.error('Error:', error);
});
fetch('/board/'+articleId, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
alert('게시판 정보가 성공적으로 수정되었습니다.');
})
.catch(error => {
alert('게시판 정보 수정 중 오류가 발생했습니다.');
});
});
{
"이름" : "홍길동",
"나이" : 25,
"국적" : "대한민국"
}
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
// user 객체를 활용한 로직 처리
return ResponseEntity.ok(user);
}
}
@PostMapping("/register")
public ResponseEntity<String> registerUser(@RequestBody UserDTO userDTO) {
System.out.println("이름: " + userDTO.getName());
System.out.println("이메일: " + userDTO.getEmail());
return ResponseEntity.ok("사용자가 성공적으로 등록되었습니다.");
}
뷰 템플릿에서 컨트롤러로 정보를 전달할 때는 @RequestParam을 사용할 수도 있지만, 그 외에도 다양한 방법이 있음.
1. @RequestParam 어노테이션을 통해 하나의 데이터당 하나의 변수로 전달하는 방법
2. @RequestParam 어노테이션을 통해 Map 형태로 전달하는 방법
3. 클래스를 생성하여 객체 형태로 정보를 전달하는 방법
DTO(Data Transfer Object) 사용
주의사항 : 클래스 필드의 명칭과 폼 데이터의 name값을 일치시켜야함
요약
@Entity → 엔티티 클래스 선언
@Id → Primary Key 지정
@GeneratedValue → Primary Key 자동 생성 설정
@Column → 컬럼 매핑 및 속성 지정
@CreationTimestamp → 레코드 생성 시 자동 시간 기록
@UpdateTimestamp → 레코드 수정 시 자동 시간 갱신