본문 바로가기
스프링 쇼핑몰 만들어보기

UPDATE 기능 만들기

by hoshi03 2024. 5. 3.

• UPDATE 기능

 

list에서 특정 상품을 클릭하면 id를 받아서 그 오브젝트를 찾고

찾은 오브젝트를 가지고 edit.html에서 폼 안에 내용을 입력해서 리포지토리에 갱신된 데이터를 저장하게 했다

데이터 저장하는것과 새로 만드는 것은 기존 객체와 id가 같으면 내용을 갱신하는 것이 되고, 새로운 id면 새 객체를 만드는 것으로 된다 

 

/edit/2 형태의 경로로 들어오면

findById로 Item 오브젝트를 찾고 제목과 값을 폼 태크에 수정해서 /edit로 post 요청을 보낸다

@GetMapping("/edit/{id}")
String edit(@PathVariable Long id, Model model){
    Optional<Item> result = itemService.findOne(id);
    if (result.isPresent()){
        model.addAttribute("item", result.get());
        return "edit.html";
    }
    else return "redirect:/list";
}

 

받은 post요청에 이상이 없는지 (제목이 너무 길거나, 가격이 음수) 확인하고

@RequestParam으로 받은 변수로 item을 업데이트한다

@PostMapping("/edit")
String editItem(Long id, String title, Integer price){
    if (title.length() > 100 || price < 0){
        return "redirect:/edit/" + id;
    }
    itemService.updateItem(id,title,price);
    return "redirect:/list";
}

 

 

 

'스프링 쇼핑몰 만들어보기' 카테고리의 다른 글

삭제 기능 (Ajax 쿼리스트링, getmapping?)  (0) 2024.05.03
Ajax, 쿼리 스트링  (0) 2024.05.03
서비스 컨트롤러 분리  (1) 2024.05.01
타임리프, Rest Api 예외처리  (1) 2024.05.01
타임리프 문법  (0) 2024.05.01