예시 ) 글 작성 페이지를 만든다면?
[C]
V에서 온 요청을 올바른 M(DAO)로 보내줘야한다.
1 Action 당 1 기능을 넣어야한다.
"V에서 온 요청"이 기능인가? 페이지 이동인가?
사용자가 글 작성 버튼을 누르면, V >> C >> V
글 작성 페이지로 이동함
글 내용을 작성하고 글 작성 버튼을 누르면, V >> C >> C >> V
BOARDDAO의 INSERT를 수행하고, 메인 페이지로 이동
예시 ) 글작성을 하는 Action - InsertBoardAction.java
package controller.board;
import controller.common.Action;
import controller.common.ActionForward;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import model.dao.BoardDAO;
import model.dto.BoardDTO;
public class InsertBoardAction implements Action{
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) {
// V에서 받은 데이터를 ===>> parameter
// V에서 받은 데이터가 아래 세개라고 가정한 경우임
String content = request.getParameter("content");
String title = request.getParameter("title");
String writer = request.getParameter("writer");
// M한테 전달 ===> DTO
BoardDAO boardDAO = new BoardDAO();
BoardDTO boardDTO = new BoardDTO();
boardDTO.setContent(content);
boardDTO.setContent(title);
boardDTO.setContent(writer);
boolean flag = boardDAO.insert(boardDTO);
// 잘 됐는가 확인하려면
// 로그를 작성해라!
ActionForward forward = new ActionForward();
if(flag) {// 성공했으면
forward.setPath("main.do");
}
else { // 실패했으면
forward.setPath("insertBoardPage.do");
}
forward.setRedirect(true);
return forward;
}
}
[V]
<a href="insertBoardPage.do">글 작성 페이지로 이동</a>
나 이렇게 했어. C에게 전달하기
(굳이 뭐로 정하자 회의 보다는. 오더하기)
C가 name 정해야하는데 안 정해서 못 만듬 -->> xxxxx
<input type="text" name="writer" value="${loginInfo}" readonly>
C님, 저 value 값 ${loginInfo} 로 정했으니 참고해주세요~
예시 - insertBoard.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글 작성 페이지</title>
</head>
<body>
<form action="insertBoard.do" method="POST">
내용 <input type="text" name="content" required placeholder="반드시 작성해주세요"> <br>
제목 <input type="text" name="title" required placeholder="반드시 작성해주세요"> <br>
작성자 <input type="text" name="writer" value="${loginInfo}" readonly> <br>
<input type="submit" value="글 작성">
</form>
<input type="text" name="content" required>
<input type="text" name="title" required>
<input type="text" name="writer" required>
</body>
</html>
[M]
INSERT를 만들고 추가하기
예시 )
더보기
더보기
private final String INSERT = "INSERT INTO BOARD (BID,TITLE,CONTENT,WRITER) VALUES((SELECT NVL(MAX(BID),100)+1 FROM BOARD),'?','?','?')";
'웹' 카테고리의 다른 글
[JSP, JavaScript] 네이버 로그인 API (0) | 2024.08.30 |
---|---|
이미지파일 업로드 (0) | 2024.08.29 |
핸들러 매핑, 싱글톤 패턴 (0) | 2024.08.21 |