본문 바로가기

Java Spring

Spring MVC패턴 웹 프로젝트 기초설정 - (5)

데이터베이스에 저장된 데이터를 불러와 웹페이지에서 확인하기

일단 웹서버의 주소를 바꿔준다.

아래의 Tomcat v8.5 Server... 을 더블클릭한다. -> Modules 클릭 -> Edit... 클릭 -> Path를 /로 바꿔주고 OK 클릭

board -> src -> main -> webapp -> WEB-INF -> views 마우스 우클릭 -> New -> Folder 클릭

board라는 이름의 폴더를 새로 만든다.

생성한 board폴더 우클릭 -> New -> Other 클릭

JSP File을 클릭한 후에 Next

경로를 확인한 후에 File name에 list.jsp 입력 후 Finish 클릭

list.jsp내용을 다음과 같이 입력해 준 다음 저장해준다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>insert title here</title>
</head>
<body>

  <table>
   <thead>
    <tr>
     <th>번호</th>
     <th>제목</th>
     <th>작성자</th>
     <th>작성일</th>
     <th>조회수</th>
    </tr>
   </thead>

   <tbody>

   </tbody>

  </table>

</body>
</html>

views -> home.jsp에 다음 코드를 추가해준다.

<p><a href="/board/list">목록으로 이동</a></p>

컨트롤러를 생성해주기 위해 board -> com.board.myapp 마우스 우클릭 -> New -> Class 클릭

Name에 BoardController입력 후 Finish 클릭

BoardController.java에 다음내용을 추가해 준다.

package com.board.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@Controller
@RequestMapping("/board/*")
public class BoardController {

 @RequestMapping(value = "/list", method = RequestMethod.GET)
 public void getList() throws Exception {
  
   
 }
}

이제 서버를 한번 켜보고 http://localhost:8080/ 에 들어가보면 다음과 같은 페이지가 나올 것 이다.

목록으로 이동을 클릭 할 시 다음과 같이 나오면 성공이다. 아직 데이터베이스에서 데이터를 안불러와서 데이터는 안들어 와있다.

src/main/resources -> mappers -> boardMapper.xml파일에 </mapper> 위에 다음 내용을 추가한다.

<select id="list" resultType="com.board.domain.BoardVO">
 select * from board.tbl_board
</select>

 

src/main/java 마우스 우클릭 -> New -> Package 클릭

com.board.dao와 com.board.service 두개를 만들자.

생성한 com.board.dao 마우스 우클릭 -> New -> Interface 클릭

이름을 BoardDAO로 만들고 Finish클릭

생성된 BoardDAO.java에 다음내용 추가

package com.board.dao;

import java.util.List;

import com.board.domain.BoardVO;

public interface BoardDAO {
 
 public List<BoardVO> list() throws Exception; 

}

com.board.dao 마우스 우클릭 -> New -> Class 클릭

이름을 BoardDAOImpl이라고 입력 후에 Add클릭

 

board 검색 후에 BoardDAO 입력 후 OK -> Finish 클릭

생성된 BoardDAOImpl.java에 다음과 같이 작성한다.

package com.board.dao;

import java.util.List;

import javax.inject.Inject;

import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;

@Repository
public class BoardDAOImpl implements BoardDAO {

 @Inject
 private SqlSession sql;
 
 private static String namespace = "com.board.mappers.board";


 @Override
 public List list() throws Exception { 
  
  return sql.selectList(namespace + ".list");
 }

}

아까 만들었던 com.board.service 패키지에도 방금 만든것과 같이 만들어 준다. 이번에는 BoardService를 상속 받아야 한다.

//BoardService.java에 넣으세요

package com.board.service;

import java.util.List;

import com.board.domain.BoardVO;

public interface BoardService {
	
	public List<BoardVO> list() throws Exception;

}
//BoardServiceImpl.java에 넣으세요

package com.board.service;

import java.util.List;

import javax.inject.Inject;

import org.springframework.stereotype.Service;

import com.board.dao.BoardDAO;

@Service
public class BoardServiceImpl implements BoardService {

 @Inject
 private BoardDAO dao;
 
 @Override
 public List list() throws Exception {

  return dao.list();
 }

}

 

src -> main -> webapp -> WEB-INF -> spring -> root-context.xml파일에 들어간다.

</beans> 위에 다음 코드를 추가해 준다.

<context:component-scan base-package="com.board.domain" />
<context:component-scan base-package="com.board.dao" />
<context:component-scan base-package="com.board.service" />

 

com.board.myapp -> BoardController.java 파일을 수정한다.

package com.board.controller;

import java.util.List;

import javax.inject.Inject;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.board.service.BoardService;

@Controller
@RequestMapping("/board/*")
public class BoardController {

 @Inject
 private BoardService service;

 @RequestMapping(value = "/list", method = RequestMethod.GET)
 public void getList(Model model) throws Exception {
  
  List list = null;
  list = service.list();
  model.addAttribute("list", list);
 }
}

 

views -> 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" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>목록</title>
</head>
<body>

	<table style="width:60%; margin:auto; text-align:center;'">
		<thead>
		  <tr>
		   <th>번호</th>
		   <th>제목</th>
		   <th>작성자</th>
		   <th>작성일</th>
		   <th>조회수</th>
		  </tr>
		 </thead>
		  
		 <tbody>
		 <c:forEach items="${list}" var="list">
			 <tr>
			  <td>${list.id}</td>
			  <td>${list.title}</td>
			  <td>${list.users}</td>
			  <td>${list.reg_date}</td>
			  <td>${list.view_count}</td>
			 </tr>
		 </c:forEach>
		 
		 </tbody>
	</table>

</body>
</html>

 

이제 서버를 켜고 http://localhost:8080/board/list 페이지에 접속하면 다음과 같이 데이터베이스의 데이터들이 잘 들어와있는 것을 확인 할 수 있다.