to do list
1. 임시로 테이블 집어 넣기
2. jsp 화면 만들기
3. controller 만들기
4. 매퍼에 쿼리 추가하기
5. dao 만들기
1. 임시로 테이블 집어 넣기
2. 출력 page를 생성하겠습니다.
WEB-INF > views 에 board라는 폴더를 하나 생성하고 거기에 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>게시물 목록</title>
</head>
<body>
<table>
<thead>
<tr>
<th>번호</th>
<th>제목</th>
<th>작성일</th>
<th>작성자</th>
<th>조회수</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="list">
<tr>
<td>${list.bno}</td>
<td>${list.title}</td>
<td>${list.regDate}</td>
<td>${list.writer}</td>
<td>${list.viewCnt}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
3. 컨트롤러를 만들어 주겠습니다.
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.domain.BoardVO;
import com.board.service.BoardService;
@Controller
@RequestMapping("/board/*")
public class BoardController {
@Inject
BoardService service;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public void getList(Model model) throws Exception {
List<BoardVO> list = null;
list = service.list();
model.addAttribute("list", list);
}
}
4. BoardDAO 인터페이스와 BoardDAOImpl 클래스를 만들어 주겠습니다.
package com.board.dao;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardDAO {
public List<BoardVO> list() throws Exception;
}
package com.board.dao;
import java.util.List;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import com.board.domain.BoardVO;
// DAO에 특화된 어노테이션. @Component 어노테이션을 써도 상관 없지만, DAO 클래스들에 @Repository 어노테이션을 사용함으로써
// @Component 어노테이션이 가진 특성과 함께, DAO의 메소드에서 발생할 수 있는 unchecked exception들을 스프링의 DataAccessException으로
// 처리할 수 있는 장점 또한 갖는다.
@Repository
public class BoardDAOImpl implements BoardDAO {
// name으로 DI를 가능케 한다. 자바에서 지원하는 어노테이션이며 프레임워크에 종속적이지 않아 상사용해도 좋다.
// 타입으로 연결한다.
@Inject
private SqlSession sql;
private static String namespace = "com.board.mappers.board";
@Override
public List<BoardVO> list() throws Exception {
// TODO Auto-generated method stub
return sql.selectList(namespace + ".list");
}
}
5. BoardService 인터페이스와 BoardServiceImpl 클래스를 만들어 주겠습니다.
package com.board.service;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardService {
public List<BoardVO> list() throws Exception;
}
package com.board.service;
import java.util.List;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import com.board.dao.BoardDAO;
import com.board.domain.BoardVO;
@Service
public class BoardServiceImpl implements BoardService {
@Inject
private BoardDAO dao;
@Override
public List<BoardVO> list() throws Exception {
// TODO Auto-generated method stub
return dao.list();
}
}
6. roote-context.xml에 base-package를 설정하겠습니다. 설정하지 않으면 못찾아요.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="org.mariadb.jdbc.Driver" />
<property name="url" value="jdbc:mariadb://127.0.0.1:3310/board" />
<property name="username" value="soulwine" />
<property name="password" value="1111" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/mybatis-config.xml" />
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<context:component-scan base-package="com.board.domain" />
<context:component-scan base-package="com.board.dao" />
<context:component-scan base-package="com.board.service" />
</beans>
'2020 > Basic Spring board' 카테고리의 다른 글
#6 스프링 게시판 만들기 (게시물 조회 구현) (0) | 2020.06.11 |
---|---|
#5 스프링 게시판 만들기(게시물 작성 구현) (1) | 2020.06.11 |
#3 기본 게시판 만들기 ( 스프링과 데이터베이스 연동) (1) | 2020.06.09 |
#2 게시판 데이터 베이스 준비 (0) | 2020.06.09 |
#1 Spring을 이용하여 기본 게시판 만들기 (1) | 2020.06.09 |