게시판 board/main 에 들어갔을 때에 위의 이름을 바꿔주기 위함이다.
mapper dao service controller jsp 순
contentbean에 content_writer_name 을 추가해준다.
content_table 에는 user_name이 없기 때문에 user_table과 조인하여서 들고와준다. date 타입은 다음과 같이
to_char(컬럼,'YYYY-MM-DD') 를 이용해서 형태를 변환할 수 있다.
controller에서 contentlist를 받아와서 model에 넘겨준다.
jsp에서 list를 이용해서 forEach문 돌려준다.
조인해서 받아온 user_name을 contentBean의 새로만든 변수인 content_writer_name에 넣어줬었는데 그것을 여기서 사용한다.
읽을 때에 board_info_idx 값과 content_idx 값을 같이 보낸다.
content_idx 값을 통해 글 내용을 들고온다.
위에 read에서 requestparam 으로 값을 보냈기 때문에 그것을 들고오고 content_idx를 readContentBean에 넣어준다.
readContentBean을 이용해서 글 내용을 보여준다.
글을 작성하고나서 그 글을 보게끔 하려고 한다. board_info_idx 는 어찌해도 content_idx는 어떻게 처리를 해야할까
먼저, 다음과 같이 @SelectKey를 이용해서 먼저 시퀀스를 처리하고 keyProperty='content_idx' 를 통해 content_idx에 집어넣을 수가 있다. 이제 그 값을 #{content_idx} 로 받아오게 되는 것. 근데 이 writeContentBean은
이곳에서 board_info_idx 를 넣었고
그것을 write.jsp 에서 hidden태그로 받아와서
write_pro 의 addContentInfo 에서부터 주소가 전달되어진 writeContentBean이다. 고로 저기 mapper에서 넣은 content_idx도 이 bean 에 오게되는 것이다.
write_success 에서 requestparam 으로 board_idx 와 content_idx를 전달해주어서 read페이지에 잘 도달하게끔 한다.
getContentInfo 에서 content_writer_idx를 추가로 들고오도록 수정해주었고, model에 content_idx를 넘겨주었다.
이것을 이용해서 read.jsp에서 글쓴이 일때에만 수정하기와 삭제하기가 보이도록 한다.
이제 url 접근을 처리해볼 것이다.
interceptor에서 getParameter로 content_idx를 가지고오고 이것을 이용해서 getContentInfo 를 실행하여 contetn_writer_idx를 구한다. 이것을 loginUserBean의 user_idx와 비교한다.
/board/delete 과 /board/modify 일 때에 인터셉터 처리를 하게끔 선언해주었다.
not_writer.jsp 로 글쓴이 아니라고 하고 main 호출한다.
content_idx를 통해 getContentInfo를 실행시켜 그 결과들을 modifyContentBean에 넣어주어서 jsp 에서 세팅되도록 했다.
세팅한 결과 수정하기 눌렀을 때에 원본이 보이게 될 것이다.
만약 유효성 걸려서 다시 modify 호출하게되면 기존의 이미지가 없어지기 때문에
다음과 같이 이미지 출력하는 곳에 hidden 태그를 사용해준다.
이제 update문을 실행한다.
dao
service에서는 새롭게 upload된 파일이있으면 그것으로 대체하게끔 해주었다.
modifyContentBean에는 board_idx와 content_idx 둘 다 있다. modify.jsp 에 hidden 태그로 해두었기 때문이다.
그것을 이용해 modify_success를 다음과 같이 param값 붙여서 전달해주었다.
이제 삭제처리를 해주자.
삭제처리는 아주 간단하다.
이제 페이지처리를 해보자
rowbounds 는 가지고온 값에서 new RowBounds(0,10) 이면 index(0) 에서 index(10-1) 까지를 추출한다.
mybatis기능이다.
위에서부터 dao, option.properties, 그리고 service에서 value로 가지고 온 것이다.
page 값을 넘겨주었다.
전체 글 수를 사용하기 위해 사용
dao사진은 스킵
service에서 pagebean을 생성자로 만들고 return 해준다.
pageBean은 다음과 같다. 이전버튼,다음버튼,페이지 버튼을 위해 만들었다.
main에서 pagebean을 model에 넣어준다.
그리고 forEach문을 돌렸다.
그리고 다음과 같이 현재 페이지가 idx와 같다면 page-item 뒤에 active를 눌러서 파랑색으로 색이 들어오게끔 하였다.
prevPage가 0보다 작거나 같을경우 disabled 를 붙여 a태그를 비활성화 시켰다.
마찬가지로 pageBean.max>=pageBean.pageCnt 일 경우 disabled 시켰다.
'공부 기록들' 카테고리의 다른 글
2020.06.01 - mvc 프로젝트 다시하기(完) (0) | 2020.06.01 |
---|---|
2020.05.27 gsat 오답노트 (0) | 2020.05.27 |
2020.05.23 mvc 프로젝트 다시하기(3) (0) | 2020.05.23 |
2020.05.22 mvc 프로젝트 다시하기(2) (0) | 2020.05.23 |
2020.05.19 - mvc프로젝트 다시하기(1) (0) | 2020.05.19 |