DisplayTag과 SpringMVC

SpringMVC의 컨트롤러에서 원하는 페이지 이름(여기서는 index)으로 memberList 객체를 memberList라는 이름으로 전해 줬습니다.
[#M_ more.. | less.. |     protected ModelAndView handleRequestInternal(HttpServletRequest request,
           HttpServletResponse response) throws Exception {

       List<Member> memberList = memberRepository.getAllMembers();
       return new ModelAndView(“index”, “memberList”, memberList);
   }_M#]그리고 .jsp로 가도록 View Reslover를 등록 해뒀기 때문에 index -> index.jsp에 membeList객체를 들고 찾아갑니다. 그래서 index.jsp에서는 다음 처럼 dispalyTag에 바로 이 memberList 라는 이름을 사용했더니 어젯밤에 잠들기 전에 본것과 같은 화면이 출력됐습니다.
[#M_ more.. | less.. |     <display:table name=”memberList” pagesize=”5″ export=”true”>
        <display:column property=”name” title=”이름” sortable=”true” />
        <display:column property=”email” autolink=”true” sortable=”true”/>
        <display:column property=”phone” title=”연락처” sortable=”true”/>
        <display:column property=”blogAddress” title=”Blog” autolink=”true” sortable=”true”/>
        <display:column property=”messengerId” title=”MSN” sortable=”true”/>
    </display:table>_M#]위 코드는 컬럼명을 원하는 이름으로 주고(title), 페이징을 하고(pagesize), 컬럼별로 정렬이 가능하도록(sortable) 했습니다. 아. 그리고 exel, pdf, cvs(?), rtf(?) 형식의 파일로 데이타를 추출해 낼 수 있도록 했습니다.(export=true)
사용자 삽입 이미지이런 화면이 보입니다. 원하는 대로 된 것 같지만… 페이지 번호를 눌러보고 메뉴별로 눌러서 정렬을 해보려고 하면 다음과 같은 에러를 만나게 됩니다.
사용자 삽입 이미지=> page 번호 클릭 했을 때 발생하는 에러

사용자 삽입 이미지=> 컬럼이름을 눌러서 정렬하고 싶었는데 발생한 현상

다음과 같이 수정을 하면 원하는 대로 동작합니다.
[#M_ more.. | less.. |
    <jsp:scriptlet>
        Object foo = session.getAttribute( “members” );
        if( foo == null ) {
            java.util.List memberList = (java.util.ArrayList)request.getAttribute(“memberList”);
            session.setAttribute( “members”, memberList );
        }
    </jsp:scriptlet>

    <h2>All Member’s Info</h2>

    <display:table name=”sessionScope.members” pagesize=”5″ export=”true”>
        <display:column property=”name” title=”이름” sortable=”true” />
        <display:column property=”email” autolink=”true” sortable=”true”/>
        <display:column property=”phone” title=”연락처” sortable=”true”/>
        <display:column property=”blogAddress” title=”Blog” autolink=”true” sortable=”true”/>
        <display:column property=”messengerId” title=”MSN” sortable=”true”/>
    </display:table>_M#]추가 or 수정한 부분을 빨간표시를 했습니다.

DisplayTag 배끼기

DisplayTag 예제에 있는 css와 img파일을 가지고 마치 제것인양 써봤습니다.
사용자 삽입 이미지이전에 jstl을 사용해서 table을 출력 했던 화면을 DisplayTag를 사용하도록 바꾸려고 생각했는데예상 한 것 보다 시간이 오래 걸렸습니다. 그래도 위처럼 이쁘장한 화면으로 베낄 수 있었다는 것에 만족하며 잠들어야 겠습니다.

원래의 화면과 비교를 해보시면… 저의 만족감에 공감하실 수 있을지도…
bm244.bmp

DisplayTag1.1 예제 보기

1. 이 곳에서 displaytag1.1-bin 압축 파일을 다운로드 하고 압축을 풀면 아래에 있는 war파일이 보입니다.
bm238.war2. 이클립스를 실행하고 패키지들이 있는 곳에서 빈곳을 오른쪽 마우스를 클릭해서 import를 클릭합니다.
사용자 삽입 이미지3. import할 유형에서 war파일을 선택합니다.
사용자 삽입 이미지
4. 불러올 war파일의 경로를 찾아 줍니다.
사용자 삽입 이미지
5. Next를 클릭하면 아래와 같은 화면이 뜨는데요. 아무것도 선택하지 마시고 그냥 finish를 합니다.
사용자 삽입 이미지
6. 생성된 프로젝트를 우클릭 하시고 Run As -> Run on Server를 하면 예제들을 볼 수 있습니다.

DisplayTag 써보기

참조 :
http://displaytag.sourceforge.net/11/
http://blog.naver.com/jdkim528?Redirect=Log&logNo=140011759837

DispalyTag의 기능들을 사용해 보기 위한 기본 환경 세팅은 두번째 참조 링크에 있는 소스를 이용했습니다.

1. 기본적인 테이블 출력 <display:table name=”members” />

<%
    request.setAttribute( “members”, new MemberManager().getMembers(100) );
%>

<display:table name=”members” />

사용자 삽입 이미지
2. 컬럼 이름을 명시적으로 주고 싶을 때는 <display:column property=”멤버변수” title=”Alias” />

<display:table name=”members”>
    <display:column property=”name” title=”이름” />
    <display:column property=”email” title=”이메일” />
</display:table>

사용자 삽입 이미지
3. 페이징 처리를 하고 싶을 때는 <display:table name=”members” pagesize=”10″>

<display:table name=”members” pagesize=”10″>
    <display:column property=”name” title=”이름” />
    <display:column property=”email” title=”이메일” />
</display:table>

사용자 삽입 이미지
4. 컬럼 별로 Soring이 가능하도록 설정 <display:column sortable=”true”>

<display:table name=”members” pagesize=”10″>
    <display:column property=”name” title=”이름” sortable=”true” />
    <display:column property=”email” title=”이메일” />
</display:table>

사용자 삽입 이미지
이밖에도 여러 기능을 할 수 있습니다.

충치 치료..ㅠ.ㅠ

충치 치료 받을 것이 왼쪽 위, 아래와 오른쪽 위, 아래에 총 다섯개 있었고 저번에 오른쪽에 있는 것들을 한번에 세개나 때우고 오늘은 왼쪽을 하러 갔는데 “이쪽도 마취없이 해도 되겠네요.” 라며 시작한 치료는…ㄷㄷㄷ

갑자기 왼쪽 이빨 신경이 자극되는 그 오묘한 아픔이 전달이 되고 의사 선생님은 “어..생각했던 것보다 충치가 깊네요.” 하면서 드릴 소리가 더 깊어집니다.

하다가 거의(?) 충치를 제거 했지만 이대로 때우면 시릴 수 있다면서 약을 넣어주고 안정이 되면 내일 모래 때워 준다고 합니다.

휴… 3분도 채 안되는 시간의 그 긴장감이란…몸이 굳어버리고 감각을 포기하고 싶어지더군요. 그리고 머릿속에선 암시가 시작됩니다. ‘이건 나의 이빨이 아니다.’, ‘아프지 않다.’, ‘무섭지 않다.’, ‘고통을 상상하지 말자.’ 이런 암시들을 아무리 걸어도 드릴질에는 장사 없다는거…

충치로 검색을 해보자 무거운 그림이 나옵니다.
사용자 삽입 이미지출처 : 네이버 이미지 검색 결과
충치 때문에 발생할 수 있는 질병들
이라고 합니다. -_-;; 완전 무섭군요.

너무도 싫어하는 신경치료(바늘로 이빨 신경 찌르기)도 하고 이빨을 금이나 은으로 씌우는 일이 있더라도 치과에 계속 가야겠습니다.