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 수정한 부분을 빨간표시를 했습니다.