기초공사 (html,css,javascript)

EL을 사용한 list.jsp코드 본문

게시판

EL을 사용한 list.jsp코드

에스프레소라떼 2024. 1. 18. 11:21

//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"); %> 

<%
	//게시글이 담긴 DTO객체들의 리스트를 얻음
	ArrayList<BoardDto> dtoList = 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 객체의 내용을 화면에 출력-->
               <% 
               		//리스트의 모든 DTO 객체의 내용을 화면에 출력
               		
                  for (BoardDto dto : dtoList){ 
                	  request.setAttribute("msg", dto);
                	  
                %>
                   	<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>
                <%
                  	}
                 %> 	 
               </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>

위의 코드에서,

for (BoardDto dto : dtoList){

request.setAttribute("msg", dto);

 

for반복문에서 DTO하나를 꺼내서 자바변수 dto에 담아주면 이것을 request에 저장한다.

EL을 사용할 준비를 하는것이다.

그러고나면. 아래행에서 DTO에 담긴 값들을 EL로 출력한다.


<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>

HTML파트에 자바 코드가 여전히 조금은 남아있지만, 반복문을 구현 행이 그것이다.

이것을 없애는 것이 다음에 할일 JSTL을 사용하는것이다.

'게시판' 카테고리의 다른 글

forward  (0) 2024.01.19
JSTL 적용한 list.jsp코드  (0) 2024.01.18
Dao Dto 적용된 모든jsp코드  (0) 2024.01.18
모든jsp에 dao적용  (0) 2024.01.18
오류 - LocalTime /해결  (0) 2024.01.17