package kr.or.ddit.controller.board;
import java.util.List;
import javax.inject.Inject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import kr.or.ddit.service.IBoardService;
import kr.or.ddit.vo.Board;
import lombok.extern.slf4j.Slf4j;
@Controller
@RequestMapping("/crud/board")
@Slf4j
public class CrudBoardController {
@Inject
private IBoardService service;
@RequestMapping(value="/register", method = RequestMethod.GET)
public String crudRegisterForm(Model model) {
log.info("crudRegisterForm() 실행...!");
model.addAttribute("board", new Board());
return "crud/register";
}
@PostMapping(value="/register")
public String crudRegister(Board board, Model model) {
log.info("crudRegister() 실행...!");
service.register(board);
model.addAttribute("msg", "등록이 완료되었습니다.");
return "crud/success";
}
**// 리스트 로 이동하는 메소드**
@RequestMapping(value="/list", method = RequestMethod.GET)
public String crudList(Model model) {
log.info("crudList() 실행...!");
List<Board> boardList = service.list();
model.addAttribute("boardList", boardList);
return "crud/list";
}
}
interface로 먼저 IBoardSerivce를 생성하고 한다.
package kr.or.ddit.service;
import java.util.List;
import kr.or.ddit.vo.Board;
public interface IBoardService {
public void register(Board board);
public List<Board> list();
}
interface로 root-context에 설정한 대로kr.or.ddit.mapper에 만들어 준다
package kr.or.ddit.mapper;
import java.util.List;
import kr.or.ddit.vo.Board;
public interface BoardMapper {
public void create(Board board);
public List<Board> list();
}
<?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="kr.or.ddit.mapper.BoardMapper">
<!-- BoardMapper에 있는 함수명이 곧 id가 된다. -->
<insert id="create" parameterType="board" useGeneratedKeys="true">
<selectKey keyProperty="boardNo" resultType="int" order="BEFORE">
select seq_board.nextval from dual
</selectKey>
insert into board(
board_no, title, content, writer, reg_date
)values(
#{boardNo}, #{title}, #{content}, #{writer}, sysdate
)
</insert>
**<!-- 기본 게시판 리스트 출력할 쿼리 -->**
<select id="list" resultType="board">
select
board_no, title, content, writer, reg_date
from board
where 1=1
order by board_no desc
</select>
</mapper>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="<http://java.sun.com/jsp/jstl/core>" prefix="c" %>
<%@ taglib uri="<http://java.sun.com/jsp/jstl/fmt>" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>List</h2>
<a href="/crud/board/register">등록</a>
<table border="1">
<tr>
<td align="center" width="80">번호</td>
<td align="center" width="320">제목</td>
<td align="center" width="100">작성자</td>
<td align="center" width="180">작성일</td>
</tr>
<c:choose>
<c:when test="${empty boardList }">
<tr>
<td colspan="4">조회하실 게시물이 존재하지 않습니다.</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${boardList }" var="board">
<tr>
<td align="center">${board.boardNo }</td>
<td align="left"><a href="/crud/board/read?boardNo=${board.boardNo }">${board.title }</a></td>
<td align="right">${board.writer }</td>
<td align="center"><fmt:formatDate value="${board.regDate }" pattern="yyyy-MM-dd hh:mm"/></td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
</body>
</html>