이제 ‘글쓰기’ 해보자.
1. dispatcher-servlet.properties 에 BoardInsert.do추가
#로그인 폼 /Login.do=controller.Login #로그인 확인 /LoginAction.do=controller.LoginAction #게시판 리스트 /BoardList.do=controller.BoardList #게시판 글쓰기 폼 /BoardInsert.do=controller.BoardInsert
2. action class만들어 (BoardInsert : 여기서는 입력폼으로 이동해야 하는데 뿌려주거나 데이터 넘겨줄 일은 없지.)
package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class BoardInsert extends AbstractController{ @Override public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) { ModelAndView mav = new ModelAndView(); mav.setViewName("/WEB-INF/view/insert.jsp"); return mav; } }
3.view 만들어야지(insert.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="BoardInsertAction.do" method="post"> <table> <tr> <th>제목</th> <td><input type="text" name = "title" /></td> </tr> <tr> <th>이름</th> <td><input type="text" name = "name" /></td> </tr> <tr> <th>비밀번호</th> <td><input type="password" name = "password" /></td> </tr> <tr> <th>내용</th> <td><textarea cols="50" rows="5" name = "content" /></textarea></td> </tr> <tr> <td colspan="2" aligh="center"> <input type="submit" value = "작성완료" /></td> </td> </tr> </table> </form> </body> </html>
이제 내용 입력 후 작성완료를 클릭하면 BoardInsertAction.do가 실행되어 DB에 데이터를 넣고 BoardList보여주면 되겠지.
1. dispatcher-servlet.properties 에 BoardInsertAction.do추가
#로그인 폼 /Login.do=controller.Login #로그인 확인 /LoginAction.do=controller.LoginAction #게시판 리스트 /BoardList.do=controller.BoardList #게시판 < 폼 /BoardInsert.do=controller.BoardInsert #게시판 < 데이터를 DB에 저장 /BoardInsertAction.do=controller.BoardInsertAction
2. action class만들어 (BoardInsertAction : 여기서는 입력폼으로 이동해야 하는데 뿌려주거나 데이터 넘겨줄 일은 없지.)
package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import board.model.BoardDao; import board.model.BoardDto; public class BoardInsertAction extends AbstractController { @Override public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) { String title = request.getParameter("title"); String name = request.getParameter("name"); String password = request.getParameter("password"); String content = request.getParameter("content"); BoardDto boardDto = new BoardDto(); boardDto.setTitle(title); boardDto.setName(name); boardDto.setPassword(password); boardDto.setContent(content); BoardDao boardDao = new BoardDao(); boardDao.insertBoard(boardDto); ModelAndView mav = new ModelAndView(); mav.setViewName("BoardList.do"); return mav; } }
ModelAndView mav = new ModelAndView(); mav.setViewName("BoardList.do"); mav.setRedirect(true); return mav;
3.글이 입력 성공/실패 뿌려주고 (기존의 result.jsp쓰면돼) 리스트 보여주게 바꿔보자.
package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import board.model.BoardDao; import board.model.BoardDto; public class BoardInsertAction extends AbstractController { @Override public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) { String title = request.getParameter("title"); String name = request.getParameter("name"); String password = request.getParameter("password"); String content = request.getParameter("content"); BoardDto boardDto = new BoardDto(); boardDto.setTitle(title); boardDto.setName(name); boardDto.setPassword(password); boardDto.setContent(content); BoardDao boardDao = new BoardDao(); boolean result = boardDao.insertBoard(boardDto); ModelAndView mav = new ModelAndView(); mav.setViewName("/WEB-INF/view/result.jsp"); if (result == true) { //입력성공 mav.addObject("msg", "글이 등록되었습니다."); mav.addObject("url", "BoardList.do"); } else { //일력실패 mav.addObject("msg", "< 실패"); mav.addObject("url", "javascript:history.back()"); } return mav; } }
글쓰기까지 완료..
글보기도 해보자..
우선 BoardList에서 제목 클릭하면 BoardView.do 호출하게 하고
<c:forEach items="${list}" var="boardDto"> <tr> <td>${boardDto.seq}</td> <td><a href="BoardView.do?seq=${boardDto.seq}">${boardDto.title}</a></td> <td>${boardDto.name}</td> <td align="center">${boardDto.writeday}</td> <td align="right">${boardDto.readcount}</td> </tr> </c:forEach>
1. dispatcher-servlet.properties 에 BoardView.do추가
#로그인 폼 /Login.do=controller.Login #로그인 확인 /LoginAction.do=controller.LoginAction #게시판 리스트 /BoardList.do=controller.BoardList #게시판 < 폼 /BoardInsert.do=controller.BoardInsert #게시판 < 데이터를 DB에 저장 /BoardInsertAction.do=controller.BoardInsertAction #게시판 상세보기 /BoardView.do=controller.BoardView
2. action class만들어 (BoardView : seq가지고 상세내용받아서 ModelAndView로 넘겨.)
package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import board.model.BoardDao; import board.model.BoardDto; public class BoardView extends AbstractController { @Override public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) { int seq = Integer.parseInt(request.getParameter("seq")); BoardDao boardDao = new BoardDao(); BoardDto boardDto = new BoardDto(); boardDto = boardDao.getView(seq); ModelAndView mav = new ModelAndView(); mav.setViewName("WEB-INF/view/content.jsp"); mav.addObject("boardDto", boardDto); return mav; } }
3.view 만들어야지(content.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <table> <caption>글 상세보기</caption> <tr> <th>글번호</th> <td>${boardDto.seq}</td> </tr> <tr> <th>제목</th> <td>${boardDto.title}</td> </tr> <tr> <th>이름</th> <td>${boardDto.name}</td> </tr> <tr> <th>조회수</th> <td>${boardDto.readcount}</td> </tr> <tr> <th>작성시간</th> <td>${boardDto.writeday}</td> </tr> <tr> <th>내용</th> <td>${boardDto.content}</td> </tr> </table><br/> <a href = "BoardList.do">리스트</a> <a href = "BoardUpdate.do?seq=${boardDto.seq}">수정</a> <a href="BoardDelete.do?seq=${boardDto.seq}">삭제</a> </body> </html>
'Java, Spring > 09일' 카테고리의 다른 글
9일차 1 - Java Project Import하기, 서버환경에서 띄우기 (0) | 2012.09.20 |
---|---|
9일차 2 - Model2 개념 복습 및 로그인에 적용 (0) | 2012.09.20 |
9일차 3 - properties 파일 적용하기 (0) | 2012.09.20 |
9일차 4 - 게시판 List구현 & JSTL (0) | 2012.09.20 |
9일차 6 - connection pooling, JNDI (0) | 2012.09.20 |