느림보 개발
9. SpringMVC - 게시글 작성 본문
구현할 기능 : 게시글 작성
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>
▼ 실행
'코드 정리 > Spring Framework' 카테고리의 다른 글
11. SpringMVC - 게시글 수정 및 삭제 (0) | 2023.01.30 |
---|---|
10. SpringMVC - 게시글 목록 조회 및 상세 페이지 (0) | 2023.01.29 |
8. SpringMVC - 나의 위치 정보 저장 (0) | 2023.01.29 |
7. SpringMVC - 페이징 처리 (0) | 2023.01.24 |
6. SpringMVC - Ajax 통신을 통해 아이디 중복 체크 하기 (1) | 2023.01.17 |
Comments