SpringBoot 96

Springboot json 받기! with @Requestbody And JSON.stringify

xmlhttprequest로 어떻게 사진들과 글 내용들의 데이터를 보낼까 하다가 json에 대해 봤다 이미 익히 익히 알고 있었지만 그래서 궁금해졌다 json으로 프런트가 보냈을 때 과연 어떻게 받아야 하나 테스트 결과 @RequestBody을 사용해줘야 했다 @RequestParam은 예를 들어 /test? email="kim"&pwd="1111" 이렇게 받는 형식이고 @RequestBody은 json 그 자체를 받는 형식이었다 postman으로 테스트해보면 아참 고로 spring은 파라미터 이름과 vo/dto 내부 클래스 변수가 이름이 같다면 그냥 자동으로 저렇게 받아서 사용이 가능하다 (테스트 임으로 @vaild를 하지 않았다) 결과는 @RequestBody을 이용해 json을 받았다! 이제 내소스..

Springboot/Json 2021.06.20

Springboot 게시판만들기!(8) 댓글 불러오기

이제 댓글을 출력시켜주면 된다 dao로 가서 페이징을 위해 작성해준다 원리는 게시판 검색 로직과 같다 페이지별 select와 totalpage를 알기 위해 쿼리문을 작성해준다 이제 service로가서 페이징을 위한 준비를 해 주고 controller로가서 댓글도 같이 불러오게 해 주고 기본 페이지는 1로 지정해준다 결과 잘 출력된다! 요새 사실 이런 시스템은 잘 안쓰던데 일단 백엔드 위주의 공부중이니 좀 오래됐지만 ㅎㅎ 이걸로 만들었다! 이제 댓글 삭제 기능을 만들러 가자! 수정보다 삭제가 더 간단하다 그래서 삭제부터 만들자!

Springboot 게시판 만들기!(7) 댓글 등록 with Ajax

vo/dto/dao 세팅하고 html 로그인 여부에 따라 다르게 표시해주고 js 클릭 시 행할 함수를 만들어준다 정상적으로 등록했다면 등록한 게시물 페이지로 이동된다 service로가서 db에 넣을 수 있게 짜주고 restcontroller로가서 이메일 인증이 된 사람만 댓글을 적을 수 있게 해 준다! 이메일 미인증시 인증시 db로 잘 들어왔다 다음번엔 댓글이 달린 게시글에 댓글을 출력시켜 주자!

Springboot 게시판 만들기!(6)글 수정 only text version

수정/삭제 중 수정부터 하려는데 이유는 삭제시 글/댓글/사진 db로보면 boardl/comment/boardimage 하나 더 대댓글/좋아요 등까지 있다면 한 번에 다 삭제해야 하기 때문에 이제 좀 더 심플한 수정부터 하겠다 일단 아직 사진 올리기 기능이 없으니 역시 심플하다 html을 보면 이렇게 로그인 사용자와 글 작성자가 같다면 수정/삭제가 가능한 형식이다 이제 선택을 해야 한다 수정을 누를 시 disabled가 사라져서 입력이 가능하게 할지 아니면 비슷한 페이지로 보내서 수정을 하고 오게 할지 음 대부분 수정 페이지가 따로 있던 거 같아서 수정 페이지를 만들 거다 여기서 또 하나의 선택이 있다 글쓰기 페이지를 재활용할지 하니면 똑같은 페이지를 하나 더 만들지 일단 하나더 만들어서 진행하겠다 con..

Springboot 게시판만들기!(5) 조회수

시스템은 글을 클릭하면 조회수가 올라가면 된다 service로가서 이전 getArticle만 조금 바꿔주면 된다 boardvo.getHit() 로 이전 조회수를 가져와서 boardvo.setHit 다시 set을 해주고 위에 있는 @Transactional 때문에 바로바로 db가 수정이 된다 jpa진짜 아주 편리하다 들어가면 조회수가 늘고 0->1로 db도 바뀌었다 뒤로 가기 해도 1이 되어있다! 이제 다음번엔 게시글 수정/삭제를 만들어보자!

Springboot 게시판만들기!(4) 글내용 보이기 with th:href=""

이제 db에 있는 글 내용들을 글 번호로 가져와서 뿌려주면 된다 html 이제 service로 가서 만들어주자 bid를 받아서 번호에 맞는 게시물 내용을 db에서 다 꺼내온다 controller로가서 근데 html에서 /auth/가없으므로 솔직히 나도 th:href는 잘 모르는 거 같다 아직 value나 name 이런 건 그냥 쓰면 되는데 href는 thymealf로 했을 때 좀 다른 거 같아서 저부분은 그냥 복붙 했다 미리 써 논 글들이 잘 들어온다 이제 조회수 기능을 만들어보자!

Springboot 사진불러오기! with <img th:src=" ">

이제 사진을 보여주는 페이지를 만들자 html index.html에 역시 간단하게 테스트 페이지를 만든다 boarddao로가서 select *from blogboardimage where bid=?1 order by id Asc 를 던져주는건다 임의로 넣어놓은 글 번호에 해당하는 것들을 오름차순으로 가져온다(asc는 생략 가능이다) controller 글 번호를 1번으로 넣어줬으니 1로 해주고 배열로 받아준다음 확인용으로 한번 출력해보고 array로 던져준다 html 이렇게 배열 수만큼 이미지 태그를 만들어준다 검사를 눌러보면 이렇게 사진이 오는걸 알 수 있다 이제 이원리로 글쓰기에 적용하면 되는데 ajax로 넘겨줘야 하는데... 심지어 j쿼리도 아니고 바닐라 js로 짜논 상태라... 좀 찾아봐야겠다 어..

Springboot 사진업로드! with MultipartFile

게시판 기능 중에 사진 올리기 기능이 누락됐는데 이유는 아직 ajax로 데이터를 전송하는 법을 몰라서 일단 form으로 시작해보자! html 그냥 index.html에 바로 만들었다 파일을 여러 개 전송하고 싶으면 multiple="multiple" 라고 해주면 된다 restcontroller 원래 서비스로 빼서 해야 는 게 편한데 테스트여서 내 코드가 잘 먹는지 그냥 바로 controller에 넣어놨다 file.get(0).isEmpty()==false 배열의 첫 번째 칸이 비어있지 않다면 System.out.println(file.get(i).getOriginalFilename()+"파일이름"); System.out.println(file.get(i).getSize()+"파일사이즈"); 파일 이름/사..

Springboot 게시판만들기!(3) 글검색+페이징 with nativeQuery

이제 검색 기능을 만들 건데 제목으로 찾는 검색을 만들 것이다 boardlist 같은 컨트롤러를 하나 더 만들어 준다고 생각하면 된다 controller로가서 제목을 받아주고 똑같이 boardlist로 보낸다 한 페이지만 사용하려고 html에 밑에 search를 따로 또 만들어놨다 이제 직접 페이징을 만들어보자 boarddao로가서 뭐가 많아졌다 like/limit/order by를 따로따로는 쏠 줄 아는데 한꺼번에 같이 저렇게 jpa 쿼리로 쏘는 법을 모르겠다 "select *from blogboard where title like %?1% order by bid desc limit? 2,? 3" blogboard에서 title에? 1가 들어가 있는걸 bid로 정렬해 개수별로 들고 온 더 "select..

Springboot 게시판 만들기!(2) 페이징 with PageRequest.of

자 이제 페이징을 할 텐데 두 가지 방법이 있다 1. jpa가 편하게 제공해주는 기능이고 2. 댓글이나/검색할 때 써야 하는 좀 더 전통적으로 페이징을 하는 건데 둘 다 원리만 이해한다면 구현하기 어렵지 않다 한 번만 이해하면 된다 boardservice로가서 boarddao.findAll(PageRequest.of(page-1, pagesize,Sort.by(Sort.Direction.DESC,"bid"))); 이 간단한 줄이 페이징을 해준다 무슨 뜻 이냐면 page에 맞게 지정한 pagesize만큼 bid를 내림차순 기준으로 정렬해서 보내준다 기가 막힌다 진짜 하나의 놀라운 기능이 또 있다 controller로가서 여기서 개인적으로 느끼는 건데 스프링은 진짜 알면 편하고 모르면 아예 못쓰는 거 같다!..