freelec-springboot2-webservice
freelec-springboot2-webservice copied to clipboard
p144 게시글 등록 버튼 동작 안함
어떤 오류인가요?
오류설명: "글이 등록되었습니다" 라는 Alert이 노출되지 않고 DB에도 데이터가 저장되지 않음.
프로젝트 주소
Github에 오류가 난 프로젝트를 올려주세요.
Github 주소를 작성해주지 않으시면 답변해드릴수가 없어요!
- Github URL: https://github.com/smkyoyo/MyFirstSpringProejct.git
오류 로그
별다른 오류는 없지만 등록 버튼이 동작하지 않음
저도 동일한 증상을 겪었는데요. chrome의 개발자도구로 확인해보니 "uncaught syntaxerror unexpected token <"에러가 발생하더군요
IndexController의 GetMapping 애노테이션을 아래와 같이 바꾸시면 됩니다
@GetMapping("/")
public String index(){
return "index";
}
저도 스프링MVC에 대한 깊은 이해가 부족해서 자세한 설명은 못드리겠습니다
저도 동일한 증상을 겪었는데요. chrome의 개발자도구로 확인해보니 "uncaught syntaxerror unexpected token <"에러가 발생하더군요
IndexController의 GetMapping 애노테이션을 아래와 같이 바꾸시면 됩니다
@GetMapping("/") public String index(){ return "index"; }
저도 스프링MVC에 대한 깊은 이해가 부족해서 자세한 설명은 못드리겠습니다
아 답변 감사드립니다만, 저와 동일한 이슈가 아니신듯 하네요. 저는 본래 코드에 님이 쓰신대로 되어 있었습니다. ^^;
저도 동일한 증상을 겪었는데요. chrome의 개발자도구로 확인해보니 "uncaught syntaxerror unexpected token <"에러가 발생하더군요
IndexController의 GetMapping 애노테이션을 아래와 같이 바꾸시면 됩니다
@GetMapping("/") public String index(){ return "index"; }
저도 스프링MVC에 대한 깊은 이해가 부족해서 자세한 설명은 못드리겠습니다
지나가다 답변드립니다. 말씀하신 에러는 js를 불러오지 못하여 발생한 에러로 보입니다.
책 본문 143페이지에 노티되어 있듯이 Host뒤에 오는 경로("/")가 호스트서버인 tomcat context와 연결되어, 소스상 src/main/resources/static 경로로 치환된다고 보시면 됩니다.
@GetMapping 과 @GetMapping("/")은 다르게 동작합니다. 얼핏 테스트해보면 접속시 index페이지가 노출되긴 하여 오동작인지 모르고 지나칠수 있는데 path값을 명시하지 않은 경우 any request가 전부 연결됩니다. 그래서 index페이지가 뜬거고, 그걸보고 잘 연결됬다고 착각하시게 된것으로 보입니다. 글로 적으니 잘 이해가 안되셨을수 있는데 아래 내용을 참고하시면 바로 이해되실겁니다.
https://www.logicbig.com/examples/spring-mvc/request-mapping/empty-handler-mapping.html
저도 똑같은 증상으로 헛짓거리하다가 원인을 찾았습니다.
패키지 생성하실 때 static.js.app 으로 하지마시고 static\js\app 으로 만들어보세요
경로명이 잘못돼서 js파일을 인식하지 못하는 에러입니다.
저도 같은 증상으로 한참을 헤메였네요. 파일도 지워보고 경로도 지워봐도 안되었는데, 왜인지는 잘 모르지만 현재 수정하고 있는 js파일이, 브라우저 캐시에 이미 올라간 파일을 대체하지 못하는 문제인거 같습니다. 크롬에서 F12 눌러서 Network -> index.js 파일이 보이는데 preview 에 소스를 보면 현재 수정된 내용이 반영이 안되어 있습니다. 그래서 브라우저 캐시 지우고 인텔리제이에서 File -> invalidate Cashes 하고나니 잘됩니다.
저도 같은 증상으로 한참을 헤메였네요. 파일도 지워보고 경로도 지워봐도 안되었는데, 왜인지는 잘 모르지만 현재 수정하고 있는 js파일이, 브라우저 캐시에 이미 올라간 파일을 대체하지 못하는 문제인거 같습니다. 크롬에서 F12 눌러서 Network -> index.js 파일이 보이는데 preview 에 소스를 보면 현재 수정된 내용이 반영이 안되어 있습니다. 그래서 브라우저 캐시 지우고 인텔리제이에서 File -> invalidate Cashes 하고나니 잘됩니다.
와 감사합니다. 이게 저의 상황에서 해답이었어요. 실제로 저 또한 preview에 소스가 반영이 안되어 있네요. 등록은 잘 되는데 수정이랑 삭제는 왜 안될까 1시간 헤맸는데 님 덕분에 해결했습니다. 고맙습니다.
저는 jquery 적용부분에서 오류가 나서 안되어서 최신버전 cdn 주소로 적용해서 해결했습니다.