요르딩딩

Servlet&JSP 프로그래밍 (57강 ~ 67강) 본문

[강의]/[서블릿 JSP 강의] (뉴렉처)

Servlet&JSP 프로그래밍 (57강 ~ 67강)

요르딩딩 2024. 9. 30. 13:26
728x90
반응형
[57강. 목록 페이지도 MVC model2로 수정하기]
- 앞서 한 내용 복습강의

[Controller]
- request.setAttribute, forward, doGet메소드, 

[JSP]
- EL방식 : ${list[0].writerId}
- List<Notice> list = (List<Notice>) request.getAttribure("list") 
   for(Notice n : list) {
     // 저장소 종류 : page, request, session, application
    pageContext.setAttribute("n", n);
    ${n.id}
}
[58강. View페이지 은닉하기]
-순서 : controller -> JSP(view) : view를 호출하지 못하도록 은닉하기

- 뷰파일 위치 : WEB-INF/view/jsp파일들

- request.getDispatcher("WEB-INF/notice/list"); // 경로 맞추기

- WEB-INF 아래의 파일은 호출할 수 없음 > 변경후 호출시 404
[59 60 61]
[62강. forEach의 속성 사용하기]
- <c:forEach var="n" item="${list}" begin="1" end="3" varStatus="st">

   #{st.index}/${n.id} // 출력 : 1/1

   - var="n" : n에 1개씩 담김
   - begin, end : index 범위
   - varStatus="st" : ${st.current}, ${st.index}, ${st.count}, ${st.first}, ${st.last}, ${st.begin}, ${st.end}, ${st.step}
[63강. JSTL:forEach문으로 Pager번호 만들기]

<c:set var="page" value=${(param.p == null)?1:param.p}" /> // null일 수 있음, 삼항연산자사용
<c:set var="startNum" value="${startNum = page - (page-1)%5}" / > // 페이지 시작번호 계산

<c:forEach var ="i" begin="0" end="4"> // items없이 단순 반복용으로 사용
   <li><a class="-text- orange bold" href="?p=${startNum +i}&t=&1=">${startNum +i}</a></li>

- pager 번호 생성하기 : startNum = page - (page-1)%5;

 

[64강. JSTL : if문으로 Pager 이전/다음 번호 만들기]
- 예시: [<] 1 2 3 4 5 [>]

-  <a>, <span> 둘중하나만
<c:set var="page" value=${(param.p == null)?1:param.p}" /> // null일 수 있음, 삼항연산자사용
<c:set var="startNum" value="${startNum = page - (page-1)%5}" / > // 페이지 시작번호 계산
<c:set var="lastNum" value="23" / > 

<c:if test="${ startNum > 1 }"> 
   <a href="?p=${startNum +5}&t=&1=" class="btn btn-prev">이전 </span> // 링크가 이동됨.
</c:if>

<c:if test="${  startNum <= 1 }">
   <span class="btn btn- prev " onclick="alert('이전 페이지가 없습니다.');"> 이전 </span> 
</c:if>

<c:if test="${ startNum + 5 < lastNum }"> 
   <a href="?p=${startNum +5}&t=&1=" class="btn btn-next">다음 </span> // 링크가 이동됨.
</c:if>

<c:if test="${  startNum + 5 >= lastNum  }">
   <span class="btn btn-next" onclick="alert('다음 페이지가 없습니다.');"> 다음 </span> 
</c:if>
[65강. JSTL: forTokens로 첨부파일 목록 출력하기]

<% taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forTokens var = "fileName" items="${n.files}" delims="," varStatus="st"> // 쉼표 구분자 끊기 (하나씩 토큰)
   <a herf="${fileName}"> ${fileName} </a>
   <c:if test="${!st.last}"> // 현재가 마지막인지 알려준다. (boolean)
     /
   </c:if>
[66강. JSTL : format태그로 날짜 형식 변경하기]

<%taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<td> <fmt:formatDate pattern="yyyy-MM-dd hh:mm:ss" value="${n.regdate}" /> </td>
[67강. 숫자 출력 형식 지정하기 JSTL:formatNumber]

<%taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

// pattern="##,####" -> 형식 : 2342,2311 (4자리가 중요!!!)
<td><fmt:formatNumber type="number"  pattern="##,####" value="${n.hit}" /> </td> 
728x90
반응형
Comments