Spring Boot JPA,타임리프

상품 수정

작성자
vita
작성일
2023-11-15 23:03
조회
112

상품 수정의 전반적인 흐름은 아래와 같습니다.


1. detail.html에서 [수정] 버튼을 누르면 http://localhost/update 주소를 요청하고 ProductController의 update() method가 호출됩니다.

2. Controller에서 받은 입력값을 repository에 보냅니다.

3. repository에서 sql을 실행하여 테이블의 레코드가 수정됩니다.

4. Controller에서 다시 http://localhost/로 이동하여 상품목록 화면에 반영됩니다.


[해설]



@PostMapping("update")
 

public String update(ProductDTO dto, @RequestParam MultipartFile file1) {



post 방식이므로 @PostMapping으로 연결합니다.


첨부파일을 제외한 값들은 dto에 저장되고 첨부파일은 MultipartFile에 저장됩니다.




  if (file1 != null && !file1.isEmpty()) {


  } else {


  }



새로운 첨부파일이 있는지에 따라 처리하는 로직입니다.




Optional<Product> opt = productRepository.findById(dto.getProductCode());
 

Product dto2 = opt.get();
 

dto.setFilename(dto2.getFilename());



새로운 첨부파일이 없는 경우에는 dto에 저장된 상품코드를 조회하여 상품코드에 해당하는 레코드를 가져와서 파일이름을 저장합니다.




productRepository.save(p);



레코드를 수정합니다.




       return "redirect:/";



수정 완료 후 상품리스트로 이동합니다.


[실행 결과]


상품 상세 화면에서 [수정] 버튼을 누르면 상품 정보가 변경됩니다.





전체 0

전체 19
번호 제목 작성자 작성일 추천 조회
19
상품 삭제
vita | 2023.11.15 | 추천 0 | 조회 131
vita 2023.11.15 0 131
18
상품 수정
vita | 2023.11.15 | 추천 0 | 조회 112
vita 2023.11.15 0 112
17
상품 상세
vita | 2023.11.15 | 추천 0 | 조회 124
vita 2023.11.15 0 124
16
상품 등록
vita | 2023.11.15 | 추천 0 | 조회 104
vita 2023.11.15 0 104
15
상품 목록
vita | 2023.11.15 | 추천 0 | 조회 146
vita 2023.11.15 0 146
14
14. detail.html
vita | 2023.11.15 | 추천 0 | 조회 119
vita 2023.11.15 0 119
13
13. write.html
vita | 2023.11.15 | 추천 0 | 조회 135
vita 2023.11.15 0 135
12
12. list.html
vita | 2023.11.15 | 추천 0 | 조회 130
vita 2023.11.15 0 130
11
11. error.html
vita | 2023.11.15 | 추천 0 | 조회 123
vita 2023.11.15 0 123
10
10. main.css
vita | 2023.11.15 | 추천 0 | 조회 118
vita 2023.11.15 0 118
Scroll to Top