
현재 화면
수정 화면 만들기
{{> layout/header}}
<div class="container p-5">
<div class="card">
<div class="card-header"><b>익명 글수정 화면입니다</b></div>
<div class="card-body">
<form action="/board/1/update" method="post" enctype="application/x-www-form-urlencoded">
<div class="mb-3">
<input type="text" class="form-control" placeholder="Enter author" name="author" value="HG">
</div>
<div class="mb-3">
<input type="text" class="form-control" placeholder="Enter title" name="title" value="제목1">
</div>
<div class="mb-3">
<textarea class="form-control" rows="5" name="content">내용1</textarea>
</div>
<button type="submit" class="btn btn-primary form-control">글수정완료</button>
</form>
</div>
</div>
</div>
{{> layout/footer}}

게시글 수정하러 들어 갔을 때 기존 내용이 있어야 됨
select해서 불러 올 수 있게 만들기
DTO만들기

컨트롤러 생성하기
@PostMapping("/board/{id}/update")
public String update(@PathVariable int id,BoardRequest.saveAgainDTO requestDTO,HttpServletRequest request){
if(requestDTO.getTitle().length()>20){
request.setAttribute("status",400);
request.setAttribute("msg","제목은 20자를 넘을 수 없습니다.");
return "error/40x";
}
if(requestDTO.getContent().length()>20){
request.setAttribute("status",400);
request.setAttribute("msg","내용은 20자를 넘을 수 없습니다.");
return "error/40x";
}
boardRepository.update(requestDTO,id);
return "redirect:/";
}
레파지토리
@Transactional
public void update(BoardRequest.saveAgainDTO requestDTO,int id) {
Query query = em.createNativeQuery("update board_tb set author =?, title = ?, content = ? where id = ? ");
query.setParameter(1,requestDTO.getAuthor());
query.setParameter(2,requestDTO.getTitle());
query.setParameter(3,requestDTO.getContent());
query.setParameter(4,id);
query.executeUpdate();
}
데이터수정



Share article