ASP.NET2009.04.24 20:30
이번에는 글 쓰기 페이지를 개발할 차례입니다. 물론 유효성 체크나 기타 유용한 기능은 게시판 개발의 한 라이프 사이클이 지난 후에 일명 "고도화 작업" 을 하면서 더 깊이 다뤄 보고, 지금 이 게시판은 오픈소스 프레임웍과 ASP.NET MVC 와의 유연성과 확정성을 알아보기 위한 테스트 게시판입니다. 똑같이 따라했는데 오류가 나신다고요? 죄송합니다. 중간중간 빠뜨린게 많나봅니다. ㅡㅡ; 중간중간에 올리는 소스를 참고 하시어 빠진부분을 체크 해 보아요~

자... 서두가 길었는데, Write 페이지를 만들기 위해서 이전에 했던 부분을 약간 수정해야 하는 부분이 있는데 그것부터 하고 넘어 가겠습니다.

지난시간에 했던, List.aspx 에서 버튼 링크를 잘못 넣었습니다. 아래와 같이 onclick 부분을 수정해 주세요 ^^;
<input type="button" value="글쓰기" onclick="location.href='/Board/Write'" />

그리고, /Views/Board/Write.aspx 를 추가 합니다. 그리고 캡춰된 이미지와 같이 코딩합니다.

이렇게 코딩 하고 나면 이처럼 허접한 화면이 됩니다. ^^;

지금 우리에게 중요한건 디자인이 아닙니다. ㅡㅡ; 죄송합니다. ㅠㅠ

흠... 그리고 저장버튼을 눌렀을때 HomeController의 Write 액션을 취합니다. 물론 이때 Http의 Post 동사를 취하게 됩니다.(보통 사람들이 이렇게 어렵게 말 하는데, 그냥 어트리뷰트 추가해 주면되니 걱정 하지 마시기 바랍니다.)

자... 그럼 이제 어떻게 받는지 확인해 보죠.
BoardController.vb 를 다음과 같이 Write메서드를 오버로드 해서 하나 더 만들어 봅니다.


이렇게 만들면 Me.sbFacade.setBoard(formValues) 요기 파란죽이 쫙~ 갑니다. SpringBoardFacade에 없기 때문이죠.
그럼 이번에는 파사드에 추가 해 줍니다. SpringBoardFacade.vb


그리고, SpringBoardImpl.vb 클래스도 메서드 구현해 줍니다.


잘 보시면 파라메타로 FormCollection 이란걸 가지고 다닙니다. 보통은 컨트롤러에서 받아서 VO에 셋팅하고 VO를 가지고 다니지만, 완전한 로직 분리를 위해 폼컬렉션 자체를 가지고 다니기로 했습니다.

역시나 파란줄이 쭉쭉 갑니다~ DAO 에도 메서드를 선언해 줘야 하죠. 우선 BoardListDAO 인터페이스를 다음처럼 메서드 하나 추가 해 줍니다.


마찬가지로 구현을 해야 하니 SqlMapBoardListDAO.vb 클래스를 다음과 같이 변경합니다.


여기서 눈여겨 보셔야 할 부분이 getNewThread 메서드와 FormCollection 에서 폼 컬렉션을 VO 에 셋팅 하는 부분입니다.
우선 getNewThread 메서드는 태요님의 강좌에서 thread를 마지막 thread 번호보다 1000을 크게 하는것인데, 이것을 태요님은 프로시져로 처리 하셨지만, 저는 우선 select 해서 insert 하기로 하고, select를 해 보는것입니다. 중요한게 아니니 패쓰~

자...  여기까지 했다면 마지막으로 쿼리를 짜야 합니다. Board.xml 파일에 우리가 위에서 호출하는 getNewThread와 setBoard 를 추가해 봅시다.


여기까지 했으면 다 된것입니다.

그럼 실행 해 볼까요? 오류없이 잘 뜰것입니다. 글쓰기 화면에서 다음처럼 입력해 보겠습니다.

그리고 저장 버튼을 팍~ 누르는 순간..... 다음과 같은 화면이 잘 나옵니다.~

여기까지 해서 목차화면, 글쓰기 화면 까지 만들어 봤습니다.

다음강좌에는 글 읽기, 글 수정 부분을 하겠습니다.
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바