Service class 생성
service/board/BoardService.java
<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">@Service
public class BoardService {
@Autowired
BoardDAO dao;
public int insert(Board dto) {
return dao.insert(dto);
}
public int update(Board dto) {
return dao.update(dto);
}
public int delete(Board dto) {
return dao.delete(dto);
}
public Board getOne(Board dto) {
return dao.getOne(dto);
}
public List<Board> getAll(){
return dao.getAll();
}
}</pre>
controller/board/BoardController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import krac.jj.boardprj.dto.board.Board;
import krac.jj.boardprj.service.board.BoardService;
@Controller
public class BoardController {
@Autowired
BoardService service;
@RequestMapping(value="/board",method = RequestMethod.GET)
public String home(Model model) {
model.addAttribute("boards", service.getAll());
return "board_list";
}
@RequestMapping(value = "/board/{no}", method = RequestMethod.GET)
public String detail(@PathVariable int no, Model model) {
Board vo = new Board();
vo.set_id(no);
model.addAttribute("board", service.getOne(vo));
return "board_detail";
}
@RequestMapping(value = "/board/register_form", method = RequestMethod.GET)
public String insert_form(Model model) {
return "board_register_form";
}
@RequestMapping(value = "/board/register")
public String insert(Model model,
@RequestParam("subject") String subject,
@RequestParam("writer") String writer,
@RequestParam("content") String content) {
Board vo = new Board();
vo.setSubject(subject);
vo.setWriter(writer);
vo.setContent(content);
return "redirect:/board";
}
}
</pre>
Controller 기본 형태
@RequestMapping(value = “/접근주소”, method = RequestMethod.GET)
public String home(Model model) {
model.addAttribute(“파라미터변수명”, 파라미터 값);
return “jsp명”;
}
view
home.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page session="false" %> <html> <head> <title>Home</title> </head> <body> <h1> 첫번째 스프링 프로그램 </h1> <P> The time on the server is ${serverTime}. </P> </body> </html>
board_list.jsp
단순화 시켜주는 태그 jstl을 사용
자세한 설명은 타 블로그 참조
https://velog.io/@ye050425/JSP-JSTL-%EC%A0%95%EB%A6%AC
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page session="false" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>게시판 목록</title> </head> <body> <h1>게시판 목록</h1> <h5><a href="${contentPath}/board/register_form">글쓰기</a></h5> <table> <th>번호</th><th>제목</th><th>작성자</th><th>조회</th> <c:forEach items="${boards}" var="board"> <tr> <td>${board._id }</td> <td><a href="${contentPath}/board/${board._id}" >${board.subject }</a></td> <td>${board.writer }</td> <td>${board.hit }</td> <td>${board.wdate }</td> </tr> </c:forEach> </table> </body> </html>
contextPath -> 루트 주소 적어주는 함수
root를 직접 정해주는방법
Servers -> Tomcat v9.0 Server at localhost – config -> server.xml
른쪽 상단 +버튼 클릭해 다 열어준다
Context -> path 속성 값을 원하는 위치로 바꾸어준다.
board_detail.jsp
<%@ 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> <p>번호 : ${board._id}</p> <p>제목 : ${board.subject}</p> <p>내용 : ${board.content}</p> <p>작성자 : ${board.writer}</p> <p>조회수 : ${board.hit}</p> <p>작성일 : ${board.wdate}</p> </body> </html>
board_register_form.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page session="false" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>게시물 입력</title> </head> <body> <di class="container"> <form action="${contextPath }/board/register" method="POST"> <div> <label>제목</label> <input type="text" name="=subject"/> </div> <div> <label>작성자</label> <input type="text" name="writer"/> </div> <div> <label>내용</label> <textarea name="content"> </textarea> </div> </form> </di> </body> </html>