[스프링 부트 입문 14] 수정 폼 만들기 ----------------------- 하다가 index.mustache 만들고 프로그램 재시작 하면 자꾸 아래와 같은 오류가 뜹니다 서버 두개가 돌아가는 것도 아닌데 그러는데 무엇이 문제 인가요? Execution failed for task ':FirstprojectApplication.main()'. > Process 'command '/Library/Java/JavaVirtualMachines/jdk-18.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. ////제가 따라 만든 index.mustache 복사해서 아래에 넣었습니다. /// {{>layouts/header}} <form class="container" action="" method="post"> <div class="mb-3"> <label class="form-label">제목</label> <input type="text" class="form-control" name="title"> </div> <div class="mb-3"> <label class="form-label">내용</label> <textarea class="form-control"rows="3" name="content"></textarea> </div> <button type="submit" class="btn btn-primary">Submit</button> <a href="/articles/{{article.id}}">Back</a> </form> {{>layouts/footer}} /////혹시 몰라 ArticleController도 올려봅니다 이거랑 index 만들기 전까지 만든것들 실행 할 때는 다 잘 되었습니다/// package com.example.firstproject.controller; import com.example.firstproject.dto.ArticleForm; import com.example.firstproject.entity.Article; import com.example.firstproject.repository.ArticleRepository; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @Controller @Slf4j //로깅을 위한 골뱅이(어노테이션) public class ArticleController { @Autowired //스프링 부트가 미리 생성해놓은 객체를 가져다가 자동 연결! private ArticleRepository articleRepository; @GetMapping("/articles/new") public String newArticleForm(){ return "articles/new"; } @PostMapping("/articles/create") public String createArticle(ArticleForm form) { log.info(form.toString()); // System.put.println(form.toString()); -> 로깅기능으로 대체! //1.Dto를 변환! Entity! Article article = form.toEntity(); log.info(article.toString()); // System.out.println(article.toString()); //2.Repository에게 Entity를 DB안에 저장하게 함! Article saved = articleRepository.save(article); log.info(saved.toString()); // System.out.println(saved.toString()); return "redirect:/articles/" + saved.getId(); } @GetMapping("/articles/{id}") public String show(@PathVariable Long id, Model model) { log.info("id = " + id); // 1: id로 데이터를 가져옴! Article articeEntity = articleRepository.findById(id).orElse(null); // 2: 가져온 데이터를 모델에 등록! model.addAttribute("article", articeEntity); // 3: 보여줄 페이지를 설정! return "articles/show"; } @GetMapping("/articles") public String index(Model model) { // 1: 모든 Article을 가져온다! List<Article> articleEntityList = articleRepository.findAll(); // 2: 가져온 Article 묶음을 뷰로 전달! model.addAttribute("articleList", articleEntityList); // 3: 뷰 페이지를 설정! return "articles/index"; // articles/index.mustache } @GetMapping("/articles/{article.id}/edit") public String edit(@PathVariable Long id, Model model) { // 수정할 데이터를 가져오기! Article articleEntity = articleRepository.findById(id).orElse(null); // 모델에 데이터를 등록! model.addAttribute("article", articleEntity); // 뷰 페이지 설정 return "articles/edit"; } }
## edit.mustache 파일을 지우면 정상 동작하는지부터 확인해야할 듯 합니다. 문제가 생기지 않는 지점을 먼저 확인하시고, 어느 코드가 추가되었을 때 어느 에러가 발생하는지를 찾아보세요 PS. 한번에 코드를 다 넣기 보다는 조금씩 작성 및 실행하면서 어느 부분의 코드에 문제가 있는지를 확인하면 좋습니다