본문 바로가기
스프링과 JPA 기반 웹 어플리케이션 개발/5부 모임

66. 모임 취소

by Backchus 2020. 5. 4.

삭제 요청을 어떻게 보낼까?

  • POST "/study/{path}/events/{id}/delete"
  • DELETE "/study/{path}/events/{id}"

 

DELETE를 쓰려면

application-properties

# HTML <FORM>에서 th:method에서 PUT 또는 DELETE를 사용해서 보내는 _method를 사용해서 
@PutMapping과 @DeleteMapping으로 요청을 맵핑.
spring.mvc.hiddenmethod.filter.enabled=true

 

타임리프 th:method

<form th:action="@{'/study/' + ${study.path} + '/events' + ${event.id}}" th:method="delete">
	<button class="btn btn-primary" type="submit" aria-describedby="submitHelp">확인</button>
</form>

 

모임 취소 요청을 처리할 핸들러 생성

package me.weekbelt.studyolle.event;

@Controller
@RequestMapping("/study/{path}")
@RequiredArgsConstructor
public class EventController {

    // ........
    
    @DeleteMapping("/events/{id}")
    public String cancelEvent(@CurrentAccount Account account, @PathVariable String path,
                              @PathVariable Long id) {
        Study study = studyService.getStudyToUpdateStatus(account, path);
        eventService.deleteEvent(eventService.findEventById(id));
        return "redirect:/study/" + study.getEncodedPath() + "/events";
    }
}

 

모임 취소를 처리하는 메소드 생성

package me.weekbelt.studyolle.event;

@Service
@Transactional
@RequiredArgsConstructor
public class EventService {

    // .......
    
    public void deleteEvent(Event event) {
        eventRepository.delete(event);
    }
}

 

 

참고: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%9B%B9%EC%95%B1#

 

스프링과 JPA 기반 웹 애플리케이션 개발 - 인프런

이 강좌에서 여러분은 실제로 운영 중인 서비스를 스프링, JPA 그리고 타임리프를 비롯한 여러 자바 기반의 여러 오픈 소스 기술을 사용하여 웹 애플리케이션을 개발하는 과정을 학습할 수 있습니다. 이 강좌를 충분히 학습한다면 여러분 만의 웹 서비스를 만들거나 취직에 도움이 될만한 포트폴리오를 만들 수 있을 겁니다. 중급이상 웹 개발 프레임워크 및 라이브러리 Java Spring Spring Boot Spring Data JPA Thymeleaf 온라인 강의

www.inflearn.com