반응형

출처:

http://cusmaker.tistory.com/83


예전에 공부한 게시판 소스를 다시 고치면서 이번에는 제대로 MVC2 모델로 바꾸기로 했다.

이전 게시판 프로젝트는 구색만 MVC(Model-View-Controller)로 맞춰놓았지,

아직도 JSP 내부에 자바 소스가 박혀 있었다.


그래서 제대로 된 MVC 패턴로 구현하기 위해선 먼저 JSP 내에서 자바 소스를 걷어낼 필요가 있었다.

그런데 문제는 자바 소스들 안에 HTML 태그가 박혀있는 경우였다.

그 전에는 이걸 모델(자바)에서 처리해야하는가 생각했지만,

하다보니 아닌 거 같아서 다시 찾게 되었다.


그러다가 찾은 것이 위의 링크였고, 그 동안 배우고 묵혀두었던 JSTL 태그를 다시 한 번 보게 되었다.

JSP 내에서는 JSTL에서  이용해서 자바 변수를 받아 HTML 처리를 하고,

자바 내에서는 자바로 할 수 있는 일들(이전에 JSP에 박혀있던 자바 소스들)을 하게 하면 되었다.


이렇게 하면서 MVC 패턴도 한 번 더 공부할 수 있게 되었다.

사실 구현하면서도 정확히 알지 못 해서 구현하는 데 더 어려움이 있었다.


그림으로 그리면 다음과 같다.

뷰는 사용자에게 보여주기 위한 인터페이스로 JSP 페이지,

컨트롤러는 뷰에 맞는 명령어를 가져오기 위한 것으로 자바 서블릿,

모델은 실제 명령을 처리하는 것으로 자바 소스이다.




그 전에는 정확히 저 그림이 그려지지 않아 제대로 된 MVC 패턴을 구현할 수 없었지만,
이번에 다시 한 번 고치면서 어느 정도 그럴듯하게 구현할 수 있게 된 거 같다.


07.02 추가내용

JSP의 자바 소스를 JSTL로 바꾸면서 생각하기 힘들었던 것이 반복문이었다.

반복문의 첨자를 공유해야하는데 이를 해결할 방법이 떠오르지 않았다.

그러다가 생각한 것이 아예 자바 쪽에서 먼저 for 문을 돌려 배열에 저장하고,

JSTL에서 for문으로 이 배열의 요소에 한 번 더 접근하는 것이다.


개인적으로 이 방법이 썩 좋아보이지는 않지만,

ANSI C처럼 for 문 밖에 선언한 변수를 사용하는 것도 아닌 거 같아 이렇게 나두었다.

여튼 더 생각해볼 문제인 듯.

반응형
Posted by 애콜라이트
l

free counters