blog - 10

Lumi·2021년 8월 20일
0

project

목록 보기
13/16
post-thumbnail

글 작성

api

Service

save.jsp

로직이 작성하는 원리는 로그인과 같이 버튼이 클릭되면 js코드가 작동을 하고 지정한 api로 값을 보내게 된다.

그러면 그 값을 Post로 받아서 BoardService에 정의한 코드대로 이루어진뒤 값이 저장이 된다.

이떄 Board class에서 User와 연관관계가 있기 떄문에

  • Reply도 연관관계가 있지만 mappedBy이기 떄문에 따로 설정할 필요가 없다.

User의 값도 같이 들고 와야 한다.

그러기 하지만 User의 값은 UserDetail에서 관리를 하고 있기 떄문에 Post요청을 받는 곳에서 매개변수로 지정하여 값을 꺼내와주는 로직을 추가 하였다.

  • 이떄 UserDetail에는 Getter이 없기 떄문에 Getter을 추가해준다.

board.js 의 코드는 user.js의 코드와 똑같은 로직으로 작동을 하기 떄문에 추가하지 않았다.

글 목록

글을 작성을 하였으면 작성한 게시글을 볼수 있어야 한다.

Get api


Post맵핑으로 글을 작성을 하게 되면 다시 홈페이지로 이동을 하게 해놓았다.

이떄 홈페이지에서 받게되고 글을 작성한 데이터를 받을수 있게 되는데 이떄 Model을 통해서 받야아한ㄷ.

  • 주석의 내용과 같이 Spring에서는 Model로 값을 가지고 갈수 있으며 받을수도 있다.

값을 받은 병수의 이름을 boards로 지정을 하였고 boardService의 글목록이라는 메서드를 활용하여 어떤 정보를 받을것이지 입력해 주었다.

BoardService.글목록()

  • board의 전체값을 받게 해주었다.

index.jsp

  • 이후 index.jsp로 이동을 하게 되는다(GetMapping으로)

items : request정보가 넘어올떄 받는 변수의 이름을 지정
-> Model에서 지정해준 이름을 적어주면 된다.

model에 값을 담으면 지정해둔 경로로 데이터를 옮기게 된다.
-> 한건씪 board라는 변수에 담아서 뿌릴수가 있다.

board.gettitle이 호출이 된다.(저런식으로 적으면)

글 목록 페이징

글 목록을 findAll로 호출을 하면 화면이 너무 난잡하기 떄문에 페이징 처리를 해주어야 한다.

GetMapping

  • 수정을 해주어야 한다.

page를 처리할것이기 떄문에 size, id, 정렬방법 등을 설정한 pageable변수를 선언해준뒤 글목록에 변수로 넣어 준다.

BoardService

  • 수정을 하였다

pageable의 return 값은 Page이기 떄문에 수정을 해주었고 변수를 넣어 주었다.
-> findAll은 변수로 Pageable를 받을수가 있다.

Page 출력값

page를 출력하면 나오는 값의 종류이다.
content는 들어오는 Object의 변수들을 담수있다.
number는 몇 page인지
size는 page당 담을수있는 정보의 수
등을 담고 있다.
나는 content, number, last, first를 사용한다.

index.jsp

  • 마찬가지로 수정을 하였고 가장 중요하다.

페이지 처리되어 들어오는 값을 단순히 items="${boards}로 받게 된다면 오류가 발생한다.
-> page도 같이 들어오기 떄문에 page의 변수중 어떤값을 받을지를 지정해 주어야 한다.

로직에서는 boards.content를 받았다.
-> content안에 title, content가 담겨 있기 떄문에

아래는 페이지를 옴겨주는 처리를 하엿다.

일단 boards.first = 첫번쨰 페이지 일 경우에는 Previous가 disabled하게 처리를 해주었다.

  • 첫번쨰 페이지 이기 떄문에 이전 페이지가 없다.

그외의 경우에는 모두 사용 가능하게 해주었다.

  • Next도 동일하다.

모든 페이지는 boards.number를 참고한다.
왜냐하면 boards.number이 현재 보여지고 있는 페이지를 의미하기 떄문에

Previous를 누르게 되면 현재 페이지의 이전 페이지
Next를 누르게 되면 현재 페이지의 다음 페이지
를 호출할수 있게 코드를 만들어 주었다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글