Tag를 만들어 쓰면 좋은 이유

1. 유지 보수가 편해집니다.
=> 한 곳(Tag를 정의한 곳)에서 수정을 하면 싹~ 바뀌기 때문에 편리합니다. 물론 화면에 특화 시켜서 Tag를 잘 정의 해 놓았기 때문에 가능한 일일 것입니다.

2. 웹 표준을 지키는데 유리해 집니다.
=> 웹 표준 담당자가 Tag 정의 한 부분을 손봐 주시고 다른 개발자는 신경쓰지 않고 개발을 해도 됩니다. Seperation of Concern이 이루어 지는거죠.

3. 성능에는 문제가 없습니다.
=> 처음에 자바 파일을 컴파일 해야 하기 때문에 조금 느리지 그 이후로는 오히려 컨테이너에서 캐슁하고 있기 때문에 HTML 태그를 쓰는 것보다 빠르다고 합니다.

4. 코드의 가독성이 높아집니다.
=> 화면에 특화 시켜서 나눠 놓았기 때문에 눈에 훨씬 잘 들어오겠죠.

5. 기타 등등등…
=> 좋은 것 같아요.

DisplayTag 링크 기능

참조 : http://displaytag.sourceforge.net/11/tut_links.html

<display:column property=”name” title=”이름” href=”detail.do” paramId=”id” paramProperty=”id” sortable=”true” />

이런식으로 지정해 주면 detail.do 로 링크가 생기며 이 링크로 객체의 id를 id라는 이름으로 넘겨 줍니다.

이것을 받아서 member 한명에 대한 정보를 뿌리는 controller를 만듭니다.
[#M_ more.. | less.. | public class MemberDetailController extends AbstractController{

   private MemberRepository memberRepository;

   @Override
   protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {

       Integer id = Integer.parseInt(request.getParameter(“id”));
       Member member = memberRepository.get(id);
       return new ModelAndView(“detail”, “member”, member);
   }

   public void setMemberRepository(MemberRepository memberRepository) {
       this.memberRepository = memberRepository;
   }
}_M#]id로 넘어온 id를 받은 뒤 그것을 가지고 member 객체를 가져오고 다시 member 객체를 detail이라는 view와 함꼐 ModelAndView 객체에 담아서 리턴합니다. 그럼 viewResolver에 의해서 detail.jsp를 찾아가게 될 것입니다.
[#M_ more.. | less.. | <jsp:root version=”1.2″ xmlns:jsp=”http://java.sun.com/JSP/Page”
    xmlns:display=”urn:jsptld:http://displaytag.sf.net”
    xmlns:c=”urn:jsptld:http://java.sun.com/jstl/core“>

    <jsp:directive.page contentType=”text/html; charset=UTF-8″ />
    <jsp:include page=”inc/header.jsp” flush=”true” />

    <h2><c:out value=”${member.name}”/>’s Information</h2>

    <table>
        <tr>
            <th>이름</th>
            <td><c:out value=”${member.name}”/></td>
        </tr>
        <tr>
            <th>Email</th>
            <td><c:out value=”${member.email}”/></td>
        </tr>
        <tr>
            <th>Phone</th>
            <td><c:out value=”${member.phone}”/></td>
        </tr>
        <tr>
            <th>Blog</th>
            <td><c:out value=”${member.blogAddress}”/></td>
        </tr>
        <tr>
            <th>MessengerId</th>
            <td><c:out value=”${member.messengerId}”/></td>
        </tr>
    </table>

    <jsp:include page=”inc/footer.jsp” flush=”true” />
</jsp:root>_M#]
JSTL을 사용하기 위해 taglib을 지정해 주고 이 페이지에 member객체가 넘어 왔을 테니깐 “${member.name}” 이런식으로 사용해주면 됩니다.

사용자 삽입 이미지
결과는..
사용자 삽입 이미지