[스프링]MVC2방식 CRUD 게시판 만들기 9.글쓰기 구현
* 글쓰기는 GET & POST 2중으로 구성해야 한다
GET : 단순 글쓰기 페이지 VIEW
POST : 글쓰기 작업 완료 후 DB전송 및 listAll.jsp에 구현
1. regist.jsp 파일 생성
(views폴더에 regist.jsp 생성)
1-1. regist.jsp는 어디서 호출?
(listAll.jsp 일부)
2. regist.jsp 작성
(form method = "post"로 처리)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<title>글쓰기</title>
</head>
<form method = "post">
<body>
<p><label>제목</label><input type="text" name ="title"></p>
<p><label>작성자</label><input type="text" name="writer" size="15">
</p>
<label>내용</label><p>
<textarea rows="15" cols="65" name = "content"></textarea><p>
<button type = "submit">등록</button>
</form>
</body>
</html>
3. controller 구현
(BoardController.java에 메소드 추가)
package com.myp.controller;
import javax.inject.Inject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.myp.domain.BoardVO;
import com.myp.service.BoardService;
@Controller // 컨트롤러임을 명시
@RequestMapping(value = "/") // 주소 패턴
public class BoardController {
@Inject // 주입(심부름꾼) 명시
private BoardService service; // Service 호출을 위한 객체생성
@RequestMapping(value= "/listAll", method = RequestMethod.GET) // 주소 호출 명시 . 호출하려는 주소 와 REST 방식설정 (GET)
public void listAll(Model model)throws Exception { // 메소드 인자값은 model 인터페이스(jsp전달 심부름꾼)
model.addAttribute("list",service.listAll()); // jsp에 심부름할 내역(서비스 호출)
}
@RequestMapping(value = "/regist", method = RequestMethod.GET) // GET 방식으로 페이지 호출
public void registerGET(BoardVO board, Model model) throws Exception {
}
@RequestMapping(value = "/regist", method = RequestMethod.POST) // POST방식으로 내용 전송
public String registPOST(BoardVO board, RedirectAttributes rttr) throws Exception { // 인자값으로 REDIRECT 사용
service.regist(board); // 글작성 서비스 호출
return "redirect:/listAll"; // 작성이 완료된 후, 목록페이지로 리턴
}
}
4. 테스트 화면