[홈페이지만들기8] 게시판 리스트 띄우기

jngyoon·2023년 9월 19일
0

혼공일기

목록 보기
14/24

main.jsp에 게시판 리스트 띄우기

login_db.jsp

로그인 성공하면 list_db.jsp로 이동

<%@page import="dto.UserDTO"%>
<%@page import="dao.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	UserDAO udao = new UserDAO();
	String userid = request.getParameter("userid");
	String userpw = request.getParameter("userpw");
	
	UserDTO user = udao.login(userid, userpw);
	
    //로그인 성공하면 list_db.jsp로 이동
	if(user != null){
		session.setAttribute("loginUser", userid);
		response.sendRedirect("list_db.jsp");
	}
	else{
		response.sendRedirect("login_fail.jsp");
	}

%>

list_db.jsp

페이징 처리X -> 파라미터 필요X
게시글의 리스트만 긁어서 들고 가는 행위를 함

<%@page import="dto.BoardDTO"%>
<%@page import="java.util.List"%>
<%@page import="dao.BoardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	BoardDAO bdao = new BoardDAO();
	List<BoardDTO> list = bdao.getList();
	request.setAttribute("list", list);
	//select된 결과물을 request에 세팅해서 들고가는 경우에는
	//redirect가 아닌 forward 방식으로 페이지를 이동한다.
	request.getRequestDispatcher("main.jsp").forward(request,response);
%>

BoardDAO.java에 getList() 메소드 생성 (처리)

package dao;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import dto.BoardDTO;
import mybatis.SqlMapConfig;

public class BoardDAO {
	private SqlSession sqlsession;
	
	public BoardDAO() {
		sqlsession = SqlMapConfig.getFactory().openSession(true);
	}
	
	public boolean writeBoard(BoardDTO board) {
		return sqlsession.insert("Board.insertBoard",board) == 1;
	}
	
	public List<BoardDTO> getList(){
		return sqlsession.selectList("Board.getList");
	}
}

BoardMapper.xml에 select문 생성

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Board">
	<insert id="insertBoard" parameterType="boarddto">
		insert into t_board (boardtitle,boardcontents,userid)
		values(#{boardtitle},#{boardcontents},#{userid})
	</insert>
  
	<!-- select문 -->
	<select id="getList" resultType="boarddto">
		select * from t_board
	</select>
</mapper>

main.jsp에 담아온 list 띄우기

<%@page import="dto.BoardDTO"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>main</title>
</head>
<body>
	<%
		String loginUser = (String)session.getAttribute("loginUser");
		if(loginUser == null){
	%>
			<script>
				alert("로그인 후 이용하세요!");
				location.href = "loginview.jsp";
			</script>
	<%
		}
        //가져온 list를 꺼내 list 변수에 담기
		List<BoardDTO> list = (List<BoardDTO>)request.getAttribute("list");
	%>
	<p><%=loginUser%>님 어서오세요~</p>
	<p><a href="logout.jsp">로그아웃</a></p>
	<hr>
	<div>
		<a href="boardwrite.jsp">글쓰기</a>	
		<hr>
		<table>
			<tr>
				<th>제목</th>
				<th>작성자</th>
				<th>작성일</th>
			</tr>
			<%for(BoardDTO board : list){ %>
			<tr>
				<!--
					게시글 제목 클릭시 게시글을 보는 페이지로 이동
					게시글 제목, 게시글 작성자, 게시글 작성일, 게시글 내용 네가지 보여주기
					<hr> 아래에는
					[목록보기] 버튼, 게시글이 로그인한 유저의 게시글이라면 [수정] 버튼
				-->
				<td><a href="get.jsp?boardnum=<%=board.getBoardnum()%>"><%=board.getBoardtitle()%></a></td>
				<td><%=board.getUserid()%></td>
				<td><%=board.getRegdate()%></td>
			</tr>
			<%} %>
		</table>
	</div>
</body>
</html>

0개의 댓글