korcslewis
2006-04-03 10:52:17
0
9194

JSTL의 한 예제(Spring MVC의 board/edit.jsp 수정)


Spring 프레임워크 워크북을 보고 계시죠?

Spring MVC(II) 부분에 보면 JSTL을 이용하여 board/edit.jsp 파일을 구현하고 있는데,

약간의 수정을 가하면 좀 더 분명한 의미가 전달이 되고,

JSTL도 약간 공부가 될 거 같아 올립니다...

저도 JSTL은 예전에 잠시 보기만 하고 적용해 보지 않다가

이번 기회게 차후에라도 적용해 보고자 신경을 쓰고 있죠^^;;

 

edit.jsp를 다음과 같이 수정하면 원래의 의미대로 하나의 URL로 게시판 쓰기와 수정의 입력하면을 달리 할 수 있습니다.

 

먼저, <head>의 <title>을 다음과 같이 수정해 보죠...

그전에 Message.properties에 다음을 추가해 줍니다.

 

board.write.title=\uc790\ub8cc\uc2e4 \uac8c\uc2dc\ud310 - \ucd94\uac00

"게시판 - 추가"를 유니코드로 나타낸 것입니다.

그래서 <title>태그를 다음과 같이 수정합니다.

 

<c:if test="${not empty board.name}">
<fmt:message key="board.modify.title"/>
</c:if>
<c:if test="${empty board.name}">
<fmt:message key="board.write.title"/>
</c:if>

 

그러면 쓰기와 수정에 따른 타이틀이 달라지죠..

 

다음은 쓰기와 수정시 "이름"과 "email"은 각각 쓰임에 따라서 나타낼 수 있습니다.

그런데, 책의 예제소스로는 수정시 기존의 저장된 Board 객체에 있는 녀석만 가져올 수 있도록 되어져 있습니다.

따라서 이 부분을 JSTL을 통해서 다음과 같이 수정할 수 있습니다.

 

name(이름) 필드를 다음과 같이 수정합니다.

 <c:choose>
  <c:when test="${not empty loginUser.name}">
   <spring:bind path="board.name">
    <c:if test="${not empty board.name}">
     <input type="text" style="width:150" name="name" value="${status.value}" />
    </c:if>
    <c:if test="${empty board.name}">
     <input type="text" style="width:150" name="name" value="${loginUser.name}" />
    </c:if>
    <span class="fieldError">${status.errorMessage}</span>
   </spring:bind>
  </c:when>
  <c:otherwise>
   <spring:bind path="board.name">
    <c:if test="${not empty board.name}">
     <input type="text" style="width:150" name="name" value="${status.value}" />
    </c:if>
    <c:if test="${empty board.name}">
     <input type="text" style="width:150" name="name" value="${loginUser.name}" />
    </c:if>
    <span class="fieldError">${status.errorMessage}</span>
   </spring:bind>
  </c:otherwise>
 </c:choose>

 

그리고, email 필드를 다음과 같이 수정합니다.

 <c:choose>
  <c:when test="${not empty loginUser.name}">
   <spring:bind path="board.email">
    <c:if test="${not empty board.email}">
     <input type="text" style="width:250" name="email" value="${status.value}" />
    </c:if>
    <c:if test="${empty board.email}">
     <input type="text" style="width:250" name="email" value="${loginUser.email}" />
    </c:if>
    <span class="fieldError">${status.errorMessage}</span>
   </spring:bind>
  </c:when>
  <c:otherwise>
   <spring:bind path="board.email">
    <c:if test="${not empty board.email}">
     <input type="text" style="width:250" name="email" value="${status.value}" />
    </c:if>
    <c:if test="${empty board.email}">
     <input type="text" style="width:250" name="email" value="${loginUser.email}" />
    </c:if>
    <span class="fieldError">${status.errorMessage}</span>
   </spring:bind>
  </c:otherwise>
 </c:choose> 

 

그러면, 쓰기와 수정에 따라서 각각 상황에 맞는 필드가 채워지고 의미가 분명해집니다^^

첨부된 이미지를 참조하세요~~

다음에 wiki가 정상적으로 가동되면 깔끔하게 정리해서 올릴께요~~~

즐거운 주말 되세요...^^

참.. 세미나 오시는 분들 연락주세요~~~

0
0
  • 댓글 0

  • 로그인을 하시면 댓글을 등록할 수 있습니다.