IT'S DO
article thumbnail
728x90

1.  boardMapper.xml에 소스 추가

 

    <select id="list" resultType="com.dandycompany.vo.BoardVO">
SELECT   BNO
   , TITLE
   , WRITER
   , REGDATE
  FROM DANDY_BOARD
  ORDER BY BNO DESC
</select>

 

 

2. BoardDAO에서 boardMapper과 연결되는 코드를 작성

// 게시물 목록 조회
public List<BoardVO> list() throws Exception;

 

3.  BoardDAOImpl에서 BoardDAO 인터페이스에서 정의 받은 것을 구현 해야함.

 

소스 

// 게시물 목록 조회
@Override
public List<BoardVO> list() throws Exception {

return sqlSession.selectList("boardMapper.list");

}

 

ctrl + shift + o는 잊지말기를 import java.util.List 를 위해서

이 소스의 뜻은

return sqlSession.selectList("boardMapper.list");

이것은 boardMapper.xml에서 mapper의 namespace가 boardMapper이고 그중에 id가 list인것을 가져와서 반환해라는 뜻

 

4.  BoardDAO와 연결되는 BoardService를 작성

 

// 게시물 목록 조회
public List<BoardVO> list() throws Exception;

 

5. 구현부인 BoardServiceImpl을 작성

// 게시물 목록 조회
@Override
public List<BoardVO> list() throws Exception {

return dao.list();
}

 

여기서 dao.list();는 dao에있는 list()함수를 호출해서 반환하겠다는 뜻입니다.

 

6. BoardController

 

소스 : 

// 게시판 목록 조회
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(Model model) throws Exception{
logger.info("list");

model.addAttribute("list",service.list());


return "board/list";

}

 

URL은 /list로 정하고

오라클 > DAO> Service > controller로 가져온 데이터들을 jsp에 뿌려주는 작업을 진행 해야함.

model은 데이터를 담을 그릇이고 addAttribute("list", service.list())는 

service.list()에 담긴 데이터를 "list"라는 이름으로 담을것이다 라는 뜻으로 해석

 

7. view - board - list.jsp

 

 

 

소스

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
  <title>게시판</title>
</head>
<body>
<div id="root">
<header>
<h1> 게시판</h1>
</header>
<hr />
 
<nav>
  홈 - 글 작성
</nav>
<hr />

<section id="container">
<form role="form" method="post" action="/board/write">
<table>
<tr><th>번호</th><th>제목</th><th>작성자</th><th>등록일</th></tr>

<c:forEach items="${list}" var = "list">
<tr>
<td><c:out value="${list.bno}" /></td>
<td><c:out value="${list.title}" /></td>
<td><c:out value="${list.writer}" /></td>
<td><fmt:formatDate value="${list.regdate}" pattern="yyyy-MM-dd"/></td>
</tr>
</c:forEach>

</table>
</form>
</section>
<hr />
</div>
</body>
</html>

 

<c:forEach items="${list}" var = "list">에서 보시면 forEach는 받은 ${list}값 만큼 반복해주는건데

자바에서 for문이랑 비슷하다고 생각하시면 됩니다. 여기서 보시면 ${list}가 있는데, 이것이

BoardController에서 이름을 list로 정한 service.list()를 가져온것입니다.

그리고 var는 ${list}를 list라는 이름으로 선언해준것이고요. 

이것은 이제 데이터를 불러왔으닌까 뿌려줘야겠지요.

list에 있는 bno를 가져와라 라고 생각하시면됩니다. 

forEach와 c:out를 쓰려면 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 필요함

그리고 fmt날짜 포맷을 써주려면 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 사용

 

8.  BoardController 수정

목록이 만들어졌으니 list 작성시에 바로 board/list로 가도록 수정

 

9. 톰켓 재실행

내용 입력 후 작성

 

10. 목록 확인 완료

 

profile

IT'S DO

@멋진놈

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!