상품 수정
상품 수정의 전반적인 흐름은 아래와 같습니다.
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:/";
수정 완료 후 상품리스트로 이동합니다.
[실행 결과]
상품 상세 화면에서 [수정] 버튼을 누르면 상품 정보가 변경됩니다.
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
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 |