개발일지
movie-controller
준서이
2024. 4. 11. 16:47
package com.example.totalproject.Controller;
import com.example.totalproject.DTO.MovieDTO;
import com.example.totalproject.Service.MovieService;
import com.example.totalproject.Util.PaginationUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
@Controller
@RequiredArgsConstructor
public class MovieController {
//주입
private final MovieService movieService;
//맵핑
@GetMapping("/movie/list")
public String listForm(@PageableDefault(page = 1)Pageable pageable, Model model) {
Page<MovieDTO> movieDTOS = movieService.movieList(pageable);
Map<String, Integer> pageMap = PaginationUtil.Pagination(movieDTOS);
model.addAllAttributes(pageMap);
model.addAttribute("list", movieDTOS);
return "movie/list";
}
//삽입
@GetMapping("/movie/save")
public String saveForm() {
return "movie/save";
}
@PostMapping("/movie/save")
public String saveProc(MovieDTO movieDTO, MultipartFile file) {
//CTRL-B 해당메소드로 이동
movieService.movieSave(movieDTO, file);
return "redirect:/movie/list";
}
//수정
@GetMapping("/movie/modify")
public String modifyForm(Integer code, Model model) {
MovieDTO movieDTO = movieService.movieRead(code);
model.addAttribute("data", movieDTO);
return "movie/modify";
}
@PostMapping("/movie/modify")
public String modifyProc(MovieDTO movieDTO, MultipartFile file) {
movieService.movieModify(movieDTO, file);
return "redirect:/movie/list";
}
//삭제
@GetMapping("/movie/remove")
public String removeProc(Integer code) {
movieService.movieRemove(code);
return "redirect:/movie/list";
}
//개별
@GetMapping("/movie/read")
public String readProc(Integer code, Model model) {
MovieDTO movieDTO = movieService.movieRead(code);
model.addAttribute("data", movieDTO);
return "movie/read";
}
}