느림보 개발

9. SpringMVC - 게시글 작성 본문

코드 정리/Spring Framework

9. SpringMVC - 게시글 작성

@르르 2023. 1. 29. 16:16

구현할 기능 : 게시글 작성 

 

 

 

 

jsp 

 

- 글을 작성할 수 있는 form 을 만든다. 

- 스프링시큐리티가 적용되어 POST 요청시에는 csrf 토큰을 함께 전송해준다. 

 

<form action="/board/mydiarywrite" method="post">

							<div class="col-md-12">
								<div class="form-group">
									<input type="text" class="form-control" name="title"
										placeholder="제목">
								</div>
							</div>
							
                            .. 생략 .. 
                            
							<input type="hidden" name="${_csrf.parameterName }"
								value="${_csrf.token }">

					
							 .. 생략 .. 
	
							<div class="col-md-12 text-right">
								<div class="form-group">
									<input type="submit" value="등록"
										class="btn btn-primary btn-modify">
								</div>
							</div>
						</form>

 

 

 

Controller

 

- 컨트롤러에서 url 매핑을 한다. 

- get방식의 url 요청이 들어왔다면 mydiarywrite.jsp 뷰 페이지를 보여준다. 

- post 방식의 url 요청이 들어왔다면 service 비지니스 로직을 실행한다. 

- post 요청 수행 후 게시글 목록 페이지로 이동

 

@RequestMapping("/board/*")
@Controller
public class BoardController {

@Autowired
private BoardService service;



// 글 작성 GET
	@GetMapping("/mydiarywrite")
	public void getMydiarywrite() {
		log.info("getMydiarywrite()  호출 - 일기장 쓰기 호출 ");
	}



// 글 작성 POST
	@PostMapping("/mydiarywrite")
	public String postMydiarywrite(DiaryBoardVO vo) throws Exception {
		log.info("postMydiarywrite()  호출 - 일기장 쓰기 호출 ");
		service.insertD(vo);
		
		return "redirect:/board/mydiary";
	}
    
}

 

 

 

Service, Impl & DAO, Impl

 

- 서비스 딴에서 비지니스 로직을 수행하고, DAO에서 데이터베이스와 관련된 작업을 한다. 

 

// Service - 글 작성
public void insertD(DiaryBoardVO vo) throws Exception;

// ServiceImpl -  글 작성 
@Override
public void insertD(DiaryBoardVO vo) throws Exception {
		log.info("서비스 : insertD(DiaryBoardVO vo) -- 다이어리 글 작성 호출");
		dao.insertD(vo);
	}
    

// DAO - 글 작성
public void insertD(DiaryBoardVO vo) throws Exception;

// DAOImpl - 글 작성
@Override
public void insertD(DiaryBoardVO vo) throws Exception {
		log.info("insertD(DiaryBoardVO vo) -- 다이어리 글작성 실행 "+ vo);
		
		sqlSession.insert(NAMESPACE+".insertD", vo);
	}

 

 

mapper 

 

- insert 구문을 작성하여 데이터베이스에 데이터를 삽입한다. 

 

<!-- 다이어리 글작성 -->	
	<insert id="insertD">
		 insert into tbl_diary_board(userid,title,content,score)
		 values (#{userid},#{title},#{content},#{score})
	</insert>

 

 

 

 

 

▼ 실행

 

 

 

 

 

 

 

Comments