ASP.NET2009.04.20 12:36
지난 포스팅에서 ASP.NET MVC + SPRING.NET + iBATIS.NET의 세팅을 모두 끝내고, 테스트 까지 성공 하였다. 이번에는 게시판 리스트 페이지를 만들어 본다.

우선은 HomeController 대신에 BoardController쪽으로 라우팅 되도록 Board컨트롤러를 추가 시키고, 처음부터 리스트 페이지로 이동해도 되지만, 기존에 존재하는 Master페이지에서 Home, About 메뉴에다가 Board 메뉴를 추가 시키고, Board메뉴를 선택했을때 BoardController로 가도록 한다.

위 화면 처럼, Home, About, Board 가 되도록 Board 아이템을 하나 추가한다.
그러기 위해서는 Views/Shared/Site.Master 페이지에 메뉴 항목을 다음과 같이 Board 컨트롤러를 추가한다.
Html.ActionLink 의 파라메타는 linkText, ActionName, ControllerName 으로 구성된다. 즉, 파라메타 상으로, BoardController 에 List 메서드 쪽으로 보낸다는 말이니깐, 컨트롤러와 메서드를 만들어 보자.
우선 컨트롤러 폴더에서 마우스 오른쪽 클릭 하고, 추가->Controller 를 선택하면 Add Controller 다이얼로그가 뜨는데, 선택된 부분을  Board로 바꾸어 최종적으로 이름이 BoardController가 되도록 하고, Add버튼을 클릭한다.



여기서 곧장 Controller 를 수정할 것이 아니라, 처음 부터 계속 말 했던 Facade를 태우기 위해 우선 DAO단에 코드를 추가 하도록 한다. 게시판 리스트 화면이므로, getBoardList로 하도록 하자.

SqlMapBoardListDAO.vb 에 getBoardList를 추가한다.


코드를 보면 굉장힌 간결한걸 알수 있다. 쿼리는 iBATIS.NET 을 통하여 Board.xml에서 구현된다. ^^

이 클래스의 인터페이스인 BoardListDAO에도 다음과 같이 인터페이스(메서드)를 추가한다.


그리고 Facade의 구현 클래스인 SpringBoardImpl.vb의 코드는 다음과 같이 추가 되어진다.


코드에서 보는것과 같이 간결하게 이루어 진다. 이 모든것들이 SPRING.NET 과 iBATIS.NET 프레임웍 덕분이다.
하지만, 단점처럼 보이는것이 왜 자꾸 Facade를 통하려고, 비슷한 코드를 반복적으로 넣는지... 이것은 Spring in Action 이라는 책과 Core J2EE Pattern 이라는 책에서 이 방식이 좋다고 한다. ㅡㅡ; 약간 황당하게 들릴수는 있으나, 실제로 이렇게 개발을 해 보았더니 아주 확장성이 좋았다. Facade 패턴에 관한것은 나중에 다시 언급하기로 하겠다.

그러면 이제 SpringBoardFacade.vb 인터페이스에도 getBoardList 를 선언한다.


이렇게 추가하고 나면 코드단의 작업은 모두 끝났다.
다음작업은? 설정파일들을 수정하는 작업이 남았다.

설정파일 수정, 리스트 페이지 디자인, Board.xml 의 getBoardList statement 는 다음 포스트에서...

아침에 출근해서 한시간동안 하려고 하니 너무 시간이 부족한것 같다.. 일이 계속 밀리네 ㅡㅡ;


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바