00. 문제 상황
게시글 수정은 되는데, 수정하기 버튼을 클릭하면, TITLE, CONTENT에 해당하는 부분이 NULL이 되면서 빈껍데기만 출력되는 상황
콘솔에서도 확인해 볼 수 있다. 수정이 되긴 되는데, 값이 안 보임
01. 문제 해결
1) 데이터 베이스에 BOARD TABLE 만들 때 사용한 컬럼들에 걸린 제약조건을 확인해 봤다. 왜냐하면 맨 처음 콘솔에서 확인한 오라클 에러 코드는 ORA-01407: 로 특정 값에 cannot update () to NULL 이 나왔기 때문이다. (맨 처음에는 no, 그리고 title에 NULL로 업데이트 할 수 없다고 했음)
그래서 확인해보니, 쓸 데 없이 NOT NULL 조건으로 설계되어 있는 컬럼들을 모두 컬럼 제약조건을 변경했다.
SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME = 'BOARD';
ALTER TABLE BOARD MODIFY USER_ID NULL;
ALTER TABLE BOARD MODIFY BOARD_TITLE NULL;
ALTER TABLE BOARD MODIFY BOARD_CONTENT NULL;
ALTER TABLE BOARD MODIFY BOARD_NO NULL;
ROLLBACK;
2) 그랬더니, 글 수정을 하니까 제목 날아가고, 내용도 날아감... NULL로 설정해서 그런 줄 알았는데, 맨 처음 콘솔에서 알려주는 에러 메시지에 no가 자꾸 걸림
※문제 발견?????
글 수정에 UI에는 내가 글 번호를 설계를 하지 않았다. 그래서 no 값을 가지고 지금 UPDATE 하고 있는데 가져올 no 값이 안보이는 .jsp 페이지에서 하고 있으니까 안되는거 아닐까? 하는 생각이 들었다.
UI 설계 고쳐서 글 번호 표기해주는 영역 생성하고,
.jsp 파일도 수정해보기로 했다.
boardedit.jsp
boardwrite.jsp
의 <form> 태그 안에 작성
<input type="hidden" name="no" value="${ board.no }">
이 방법도 아니였다.
3) 그렇다고 dao나 service가 작동 안하냐? 그것도 아니야. 왜냐면 CRUD 할 때마다 콘솔에도 잘 찍히고, 데이터베이스에도 반영이 되기 때문!
그러면 이거는 VIEW에서의 문제라고 밖에 표현이 안되는게 아닐까?
역시....추리는 잘 했는데... 문제 진짜 찾으니까 황당하네
※문제 찾음!!!
제목이랑 내용에 해당하는 태그들에 name 속성이 빠져있었다.....
<input type="text" name="title" value="${ board.title }">
<textarea name="content">
name 속성 주고나니까 잘 된다.... 매번 큰게 아니고 이런걸 놓치지 않도록 신중하게 코드 작성해야겠다!! 다시는 실수안해!
'Project > Semi-Project' 카테고리의 다른 글
[QT Market] 게시판 구현 댓글 삭제 ORA-02292 오류 해결 과정 (2) | 2021.12.26 |
---|---|
[QT Market] 마무리 작업 (0) | 2021.12.25 |
[QT Market] 게시판 기능 구현 중 글 작성 이슈 해결 과정 (0) | 2021.12.18 |
[QT Market] 게시판 분담 완료 (0) | 2021.12.16 |
[QT Market] 프로젝트 생성 / 로그인 & 회원가입 기능 구현 / DB 수정 (0) | 2021.12.09 |