기초공사 (html,css,javascript)
JSTL 적용한 list.jsp코드 본문
//list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="java.sql.*" %>
<%@ page import = "java.util.*" %><!-- ArrayList를 사용하기 위한 것. -->
<%@ page import = "com.companyboard.db.*" %>
<!-- 한글오류 해결 따로 빼주어야 함 -->
<% request.setCharacterEncoding("utf-8"); %>
<%
// before코드 - 게시글이 담긴 DTO객체들의 리스트를 얻음
/* ArrayList<BoardDto> dtoList = new BoardDao().selectList(); */
// after - 게시글이 담긴 DTO객체들의 리스트를, request의 속성 "msgList"로 등록
request.setAttribute("msgList", new BoardDao().selectList());
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/import.css">
<title>LIST</title>
</head>
<body>
<div class="wrapper" style="padding: 20px;">
<!-- 페이지 타이틀 -->
<div class="tit-wrap">
<h2 class="tit">뉴스&미디어</h2>
</div>
<!--// 페이지 타이틀 -->
<!-- 셀렉트/검색창 -->
<div class="slt-serch">
<div class="slt-wrap slt-type01 frm-item">
<select name="#" id="#" class="slt">
<option value="#" selected>전체</option>
<option value="#">전체</option>
<option value="#">전체</option>
</select>
</div>
<div class="inp-btn frm-item">
<div class="inp-wrap inp-type01">
<input type="text" placeholder="내용을 입력하세요" class="inp">
</div>
<button type="button" class="btn btn-type01">
<span class="btn-txt">검색</span>
</button>
</div>
</div>
<!-- 셀렉트/검색창 -->
<div class="content">
<!-- 게시글 목록 -->
<div class="tbl-wrap tbl-type01">
<table class="tbl">
<caption>뉴스&미디어 게시글 목록</caption>
<colgroup>
<col class="col1" style="width: 15%;"></col>
<col class="col2" style="width: 70%;"></col>
<col class="col3" style="width: 15%;"></col>
<col class="col3" style="width: 15%;"></col>
<col class="col3" style="width: 15%;"></col>
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">제목</th>
<th scope="col">작성자</th>
<th scope="col">등록일</th>
<th scope="col">조회수</th>
</tr>
</thead>
<!-- 리스트의 모든DTO 객체의 내용을 화면에 출력-->
<c:forEach var="msg" items="${msgList}">
<tr>
<td>${msg.id}</td>
<td>
<a href="view.jsp?key=${msg.id}">
${msg.btitle}
</a>
</td>
<td>${msg.reguser}</td>
<td>${msg.regdate}</td>
<td>${msg.hits}</td>
</tr>
</c:forEach>
</table>
</div>
<!--글쓰기 버튼 -->
<br>
<div class="write-container">
<input type="button" value="글쓰기" class="btn btn-type01 btn-txt" onclick="location.href='write.jsp'">
</div>
<!--// 게시글 목록 -->
<!-- 페이지 네비 -->
<div class="page-nav-wrap">
<div class="page-nav">
<button type="button" title="처음으로 가기" class="btn-page first"></button>
<button type="button" title="이전으로 가기" class="btn-page pre"></button>
<ul class="num-list">
<li class="btn-page on">
<a href="#" class="btn-txt">1</a>
</li>
<li class="btn-page">
<a href="#" class="btn-txt">2</a>
</li>
<li class="btn-page">
<a href="#" class="btn-txt">3</a>
</li>
<li class="btn-page page-last"><!-- 마지막 목록페이지: .btn-page.page-last -->
<a href="#" class="btn-txt" title="마지막 목록페이지">5</a><!-- 마지막 목록페이지: title="마지막 목록페이지" -->
</li>
</ul>
<button type="button" title="다음으로 가기" class="btn-page next"></button>
<button type="button" title="마지막으로 가기" class="btn-page last"></button>
</div>
</div>
<!--// 페이지 네비 -->
</div>
</div>
</body>
</html>
위와 관련된 예제는 290페이지
EL을 적용한 list.jsp에서 반복문을 제거하지 못하는 이유는 반복문 때문이다.
프로그램 앞쪽에서 아예 DTO의 ArrayList를 request에 담아두고, 뒤쪽에서는 제일 마지막에 본 forEach 태그를 사용하면된다. 그렇게 하면 ArrayList에 들어있는 DTO를 하나씩 하나씩 꺼내어 출력할 수 있다.
// before코드 JSTL적용전 EL코드에서의 list.jsp - 게시글이 담긴 DTO객체들의 리스트를 얻음
/* ArrayList<BoardDto> dtoList = new BoardDao().selectList(); */
// after - 게시글이 담긴 DTO객체들의 리스트를, request의 속성 "msgList"로 등록
request.setAttribute("msgList", new BoardDao().selectList());
게시글 리스트가 들어있는 ArrayList를 msgList라는 이름으로 request에 저장한다.
그러고나면 JSTL의 forEach 태그를 이용하여 이 데이터를 모두 출력하도록 수정하면된다. 아래코드
<!-- 리스트의 모든DTO 객체의 내용을 화면에 출력-->
<c:forEach var="msg" items="${msgList}">
<tr>
<td>${msg.id}</td>
<td> <a href="view.jsp?key=${msg.id}"> ${msg.btitle} </a> </td>
<td>${msg.reguser}</td>
<td>${msg.regdate}</td>
<td>${msg.hits}</td>
</tr>
</c:forEach>
msList에는 DTO들의 ArrayList가 있으므로, 이 반복문은 그 ArrayList에서 하나씩 DTO를 꺼내어 msg라는 변수에
넣으며 반복부를 수행한다.
'게시판' 카테고리의 다른 글
JSTL까지 완성한 jsp 모든 코 (0) | 2024.01.19 |
---|---|
forward (0) | 2024.01.19 |
EL을 사용한 list.jsp코드 (0) | 2024.01.18 |
Dao Dto 적용된 모든jsp코드 (0) | 2024.01.18 |
모든jsp에 dao적용 (0) | 2024.01.18 |