컨트롤러에서 Json String 형태의 데이터를 Map형태로형태변환 시켜줄수 있는 JsonUtil의 JsonToMap에 대해 알아보자. 먼저 JsonUtil 은 하나의 java파일로 되어있는JSON을 이용하여 개발할 때 이용할 수 있는유틸리티 클래스이다. 그 클래스안의 JsonToMap은 아래와 같다. 먼저 내 프로젝트에서 JsonToMap을 사용했던 부분을캡쳐했다. 이 부분은 게시판 글의 좋아요 기능의 컨트롤러이다.param에는 hno와 status가 들어있다.hno와 status 는 jsp에서 ajax로 컨트롤러로 보내진 값들이다. 컨트롤러에서 JsonToMap을 사용하기 이전과 이후로 나눠서 sysout을 찍어 봤다. sysout을 찍어본 결과 아래와 같이 출력되는데 JsonString 형태의 데..
데이터베이스에서 컬럼을 만들때 자바에서변수명이나 메소드명을 만들때처럼 2개이상의 영어단어를 조합하여 만들 때가 있다. 2개 3개 이상의 긴 영어단어로 만들게되면변수명이나 메소드명처럼 가독성이 떨어지게 되는데변수명과 메소드명을 만들때는 카멜케이스를 사용하면 되지만컬럼명은 카멜케이스로 만들수 없다. 그렇기 때문에 데이터베이스에서 컬럼명을 길게 만들어야 할 때 에는 언더바 _ 를 사용 하게 되는데 예를 들어 조회수 컬럼명을 만든다고 한다면 viewcnt로 만드는것이 아닌view_cnt로 만드는 것이다. 보통 데이터베이스의 값들을 jstl로 화면상에 뿌려줄때는VO를 통해 값을 뿌린다. 하지만 jsp 화면단에서 이 컬럼명으로 값을 불러 올수 없다. 그렇기 때문에 보통 스프링에서 언더바를 사용한 컬럼명을 사용해야할..
보통의 개발자 분들이 개발을 할 때 가장 고민이 되는부분은"개발을 어떻게 할까?", "값을 어떻게 주고받을까?" 등의개발적인 고민을 포함해 "이 함수명과 변수명은 뭐로짓지?" 라고한다. 웹 개발을 할면서 함수명과 변수명은 자기만 알아보기쉽게만들면 안된다고 한다. 다른 사람들도 알아보기 쉽게 만들어야한다는데 보통은 영단어의 조합으로 만든다. 예를들어 DB에서의 컬럼명이든 자바에서 변수명이든 함수명이든게시판 글내용 이라는 변수명을 지을땐 content 라고 하기도 하지만보통은 boardcontent라고한다. 또는 자바에서 회원들의정보를 수정할수 있는 기능의 메소드가 있다고 한다면그 메소드명은 usermodify 또는 userinfomodify 라고이름을 지을수 있을것이다. 그런데 위처럼 2개 3개 이상의 영..
게시판에서 글 수정 삭제는 해당 글 작성자만 할수 있어야한다.우리는 전에 메인컨트롤러에서 로그인을 대체하는 세션을 만들었다. 이제 이 세션과 글작성자를 이용해 글 수정과 삭제를 작성자만 할수 있도록 할것이다글 상세 보기 페이지에서수정 삭제 버튼을 태그로 아래처럼 조건을주자.세션에 저장된 ID와 글 작성자가 같아야 수정, 삭제 버튼이화면에 그려진다. 다음 조회수를 위해 아래처럼 수정하자 처음에 DB에서 조회수 의 기본값을 아무것도 안줬는데 0을 줄수 있도록하자. 그리고 조회수는 글 상세보기를 누르는 순간 조회수가 1 올라갈 수 있도록 글 상세보기 컨트롤러에서 위처럼 수정해준다.먼저 세션에 id값을 가져온후 if문을 써 글작성자와 로그인된id값이 같지않다면 boardService.updateViewCnt를 ..
이제 게시글의 수정과 삭제에 대해 알아보자.게시글의 수정과 삭제버튼은 보통 게시글을상세볼수있는 페이지에 위치한다 또한 다시 목록으로 갈수있도록"목록으로" 버튼도 존재한다. 일단 상세보기 페이지에서목록으로, 삭제, 수정 버튼을 만들어주자. 이제 스크립트단안에 detailForm이라는 클래스를하나 만들어준다음 버튼이 눌려질때마다 각 컨트롤러로 이동될수 있도록 해주자. 다음 상세보기 페이지에서 form태그에 id값을 달아준다음. form태그가 submit될때글 번호도 같이 submit될수 있도록input태그를 사용해 글번호를 적어주자.화면상에 보여질 필요는 없으니 타입을 hidden으로 주자. 이제 컨트롤러에서 글수정 form 을 위한 맵핑을 시켜준다음 글수정 폼으로 갈수있도록 리턴해주자.boardServic..
이전 포스팅들에서는 게시판의 글 리스트 불러오기와 글 상세보기를 했다. 이번포스팅에서는게시글 작성을 한번 만들어 보자. 먼저 글쓰기 버튼을 만들어준 다음 버튼에 id값을 설정한다. 다음 게시글리스트 jsp에서 글쓰기 버튼을 눌러주면글작성 Form 으로 이동할수 있도록 스크립트단을아래와 같이 만들어준다. 다음 컨트롤러에서 boardInsertForm을 맵핑시켜준다. 이제 글 작성자를 위한 세션을 하나 만들겠다. 게시판에 글을 작성하기위해선 로그인이 필요하다 보통 글 작성을 할때 글 작성자에는 로그인한 아이디값이 들어가지게 된다. 이를 위해 메인 컨트롤러에서간단하게 세션을 하나 만들어준 후 작성자로 사용하겠다. 위처럼 메인 컨트롤러에서 세션을 만들어준후. 게시판 글 작성 컨트롤러에서 세션을 불러와 사용할수 ..
이번엔 게시글 상세보기를 만들어보자 게시글 상세보기는 보고싶은 해당 게시판의로우를 클릭하면 글의 상세내용을 볼수 있도록 하는기능이다. 먼저 로우 클릭을위해 리스트를 보여주는 jsp화면단에서tr태그를 만들어주고 그안에 rowClick클래스를 넣어주자. 다음 스크립트단을 아래와 같이 만들어주자. rowClick를 클릭할때 function이 실행되며제이쿼리를 이용해 this타겟을(tr) 잡고 children을(td) 이용해 바로밑의자식노드의 값을 가져와 boardno에 저장한다. 이제 실행을 한다음 게시판 리스트에서 상세보기를 하려는 글의 로우를 클릭하면 위와 같이 alert이 뜨며 위에서 제이쿼리 타겟으로 잡은값인boardno 의 값이 alert창으로 출력된다. 이제 BoardVO를 만들어주자. VO안에는 ..
게시판을 만들기전에 게시판 기능을 구현할수 있는부트스트랩 템플릿이나 디자인이들어간 간단한 홈페이지를 준비하자. 게시판을 만들기 위해 먼저 테이블을 만들어주자. 테이블의 컬럼은 게시글 번호, 제목, 내용, 글쓴이, 글작성날짜, 조회수,글 수정날짜, 그리고 게시글의 사용여부를 위한 USEYN을 만들어줬다. 이제 데이터를 넣어주는데 테스트용으로 값을 대충 넣어주자 먼저 컨트롤러를 보자. 컨트롤러에서는 게시판 리스트를 위해DB에서 데이터들을 뽑아와 model.Attribute를 사용해 화면에 뿌려줬다. 이제 인터페이스인 서비스와, 서비스임플, 맵퍼를 채워주자. /*서비스*/ /*임플*/ /*맵퍼*/ 이제 DB에서 쿼리를 적어 데이터를 뽑아오자먼저 글 번호와, 제목, 내용, 글쓴이, 작성날짜를 가져왔다. 이제 b..