1. 입력 폼 작성
el과 jstl을 사용하여 불필요한 코드들 생략
boardAdd.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" | |
pageEncoding="UTF-8"%> | |
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<title>BOARD ADD</title> | |
</head> | |
<body> | |
<h1>BOARD ADD</h1> | |
<form action="<c:url value='/board/boardAdd'/>" method="post"> | |
<div>boardPw :</div> | |
<div> | |
<input name="boardPw" id="boardPw" type="password" /> | |
</div> | |
<div>boardTitle :</div> | |
<div> | |
<input name="boardTitle" id="boardTitle" type="text" /> | |
</div> | |
<div>boardContent :</div> | |
<div> | |
<textarea name="boardContent" id="boardContent" rows="5" cols="50"></textarea> | |
</div> | |
<div>boardName :</div> | |
<div> | |
<input name="boardUser" id="boardUser" type="text" /> | |
</div> | |
<div> | |
<input type="submit" value="글입력" /> <input type="reset" value="초기화" /> | |
</div> | |
</form> | |
</body> | |
</html> |
2. controller 작성
BoardController.java
package com.tistory.luahius.web; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.stereotype.Controller; | |
import org.springframework.web.bind.annotation.RequestMapping; | |
import org.springframework.web.bind.annotation.RequestMethod; | |
import com.tistory.luahius.service.Board; | |
import com.tistory.luahius.service.Boardservice; | |
@Controller | |
public class BoardController { | |
@Autowired | |
private Boardservice boardService; | |
@RequestMapping(value="/board/boardAdd", method=RequestMethod.GET) | |
public String boardAdd(){ | |
return "/board/boardAdd"; | |
} | |
@RequestMapping(value="/board/boardAdd", method=RequestMethod.POST) | |
public String boardAdd(Board board){ | |
boardService.addBoard(board); | |
return "redirect:/board/boardList"; | |
} | |
} |
http://localhost/board/boardAdd 를 GET방식으로 요청하면 /board/boardAdd.jsp 를 보여주고
POST방식으로 요청하면 boardService.addBoard(board)메소드를 호출
호출 후 Redirect 해 BoardList로 이동한다.
3. 인터페이스
유지보수를 편리하게 하기 위해 BoardServiceImpl를 생성하고 BoardService인터페이스를 구현한다.
BoardService.java
package com.tistory.luahius.service; | |
public interface BoardService { | |
int addBoard(Board board); | |
} |
BoardServiceImpl.java
package com.tistory.luahius.service; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.stereotype.Service; | |
@Service | |
public class BoardServiceImpl implements BoardService{ | |
@Autowired | |
private BoardDao boardDao; | |
@Override | |
public int addBoard(Board board) { | |
return boardDao.insertBoard(board); | |
} | |
} |
BoardDao.java
package com.tistory.luahius.service; | |
public interface BoardDao { | |
int insertBoard(Board board); | |
} |
BoardDaoImpl.java
package com.tistory.luahius.service; | |
import org.mybatis.spring.SqlSessionTemplate; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.stereotype.Repository; | |
@Repository | |
public class BoardDaoImpl implements BoardDao{ | |
@Autowired | |
private SqlSessionTemplate sqlSession; | |
private final String BOARD_NS="com.tistory.luahius.BoardMapper."; | |
@Override | |
public int insertBoard(Board board) { | |
return sqlSession.insert(BOARD_NS+"boardAdd", board); | |
} | |
} |
com.tistory.luahius.BoardMapper. 의 주소는 중복, 변화되지 않으니 변수로 선언해준다.
미리 servlet-context.xml에서 생성해둔 SqlSessionTemplate 객체를 통해 메소드를 호출
4. BoardMapper 작성
namespace + id 즉 com.tistory.luahius.BoardMapper.boardAdd 이란 이름을 호출하면
아래의 쿼리문을 실행해 준다.
parameterType은 내가 어떤 Board인지 자세하게 알려줘야 하며 Board의 변수 명과 동일하게
#{}태그를 사용하면 값을 받아 올수 있다
BoardMapper.xml
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
<mapper namespace="com.tistory.luahius.BoardMapper"> | |
<insert id="boardAdd" parameterType="com.tistory.luahius.service.Board"> | |
INSERT INTO board( | |
board_pw, | |
board_title, | |
board_content, | |
board_user, | |
board_date | |
) values( | |
#{boardPw}, | |
#{boardTitle}, | |
#{boardContent}, | |
#{boardUser}, | |
now() | |
) | |
</insert> | |
</mapper> | |
'프로그래밍 > 프로젝트' 카테고리의 다른 글
주제 선정의 어려움 01 (0) | 2017.01.09 |
---|---|
[MVC] 게시판 예제 1) 준비하기 (0) | 2017.01.06 |
주제선정 최종 (0) | 2017.01.02 |