Blog 게시판 만들기 (1) - Setting : Controller로 받기

bethe·2022년 9월 4일
0

Springboot

목록 보기
32/46
post-custom-banner

Setting

  1. 새 워크스페이스 만들기
    : Switch Workspace-Other → 새 Workspace 경로 지정(나의 경우 spring_lab -> spring_project_lab으로 변경)


  2. Preference에서 enc 검색 후 Workspace와 Web 모두 UTF-8로 맞춰주기

  3. Setting된 project 다운로드
    https://github.com/mb6282/blog
    에서 마스터 브랜치 (세팅) 다운로드



세팅 살펴보기

  • 이번에는 Controller로 jsp파일을 return해 게시판 기능이 있는 블로그 페이지를 구현한다.
  • Setting의 IndexController와 index.jsp는 잘 작동되는지 테스트 하기 위해 넣어놨으므로 삭제해도 된다.
  • jsp파일은 CDN방식으로 만들었다.
    • CDN(Content Delivery Network) : 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술
    • https://www.w3schools.com/ 에서 Tutorials-Learn BootStrap-version.B5의 예시들을 사용해서 만들었다.

      header에 link(css)와 js(script)가 있어야 적용된다.

      <link
      	href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
      	rel="stylesheet">
      <script
      	src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>

- 💡 회원가입, 로그인 등 인증에 필요한 주소는 주소에 Entity(table 명)을 붙이지 않는 경우가 많다. → UserController의 Mapping 주소에 Entity명이 붙지 않았다.

<br>

> **@Controller 어노테이션이라도 파일 대신 data 값을 출력할 수 있는 방법** : **메서드 타입 앞에 @ResponseBody 붙이기**

```java
package site.metacoding.red.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;

import lombok.RequiredArgsConstructor;
import site.metacoding.red.domain.users.Users;
import site.metacoding.red.domain.users.UsersDao;

@RequiredArgsConstructor
@Controller
public class IndexUsersController {

	private final UsersDao usersDao;
	
	@GetMapping("test/users/{id}")
	public @ResponseBody Users getUsers(@PathVariable Integer id) {
		return usersDao.findById(id);
	}
}


READ ME - 테이블 생성 수정 (boards table 쿼리문 추가)

create table users(
    id number primary key,
    username varchar2(20),
    password varchar2(20),
    email varchar2(50),
    createdAt TIMESTAMP
);

CREATE SEQUENCE users_seq 
INCREMENT BY 1 
START WITH 1;

create table boards(
    id number primary key,
    title varchar2(150),
    content clob,
    usersId number,
    createdAt TIMESTAMP,
    CONSTRAINT fk_users_id foreign key(usersId) references users (id)
);

CREATE SEQUENCE boards_seq 
INCREMENT BY 1 
START WITH 1;
profile
코딩을 배우고 기록합니다. 읽는 사람이 이해하기 쉽게 쓰려고 합니다.
post-custom-banner

0개의 댓글