-
[Spring boot] 클라이언트의 전달 값을 바인딩시 사용되는@ModelAttribute와 @RequestBody의 차이점과 @ModelAttribute 바인딩 안되는 문제spring boot 2025. 1. 5. 16:08
public static class TestController { @PostMapping public ResponseEntity modelTest(@ModelAttribute TestDTO testDTO) {} @PostMapping public ResponseEntity bodyTest(@RequestBody TestDTO testDTO) {}}RestAPI 를 개발하다 보면 JSON 형태의 요청을 많이 사용하게 되는데파일 요청을 위해선 form-data가 필요해서form-data 요청으로 테스트 하던 중,요청 파라미터가 정상적으로 바인딩 되지 않았습니다.해결 방법은 찾았지만 그에 대한 내용을 정확하게 이해하기 위해정리해보는 ModelAttribute와 RequestBody의 차이..
-
[Spring boot] mybatis join 테이블 jsp 출력하기spring boot 2023. 10. 21. 18:39
📌 환경 - framework : spring boot - Language : java 11 - database : oracle 12c 그동안 취준하면서 게시판을 몇 번 만들어봤지만 join해서 데이터를 뿌릴일이 없었기에 큰 문제가 없었는데 막상 회사에 들어와서 보니 join 해서 데이터를 뿌려줘야 하는 상황에 직면하게 되는데 ... 두둥탁🥁🥁 검색해보니 mapper.xml에 join에 해당하는 resultMap을 만드는 방법, 조인할 컬럼을 넣은 DTO를 새로 만드는 방법이 있었지만 뭔가 쉬운 방법이 있지 않을까 싶어 찾아보던 중에 hashMap을 이용하면 된다는 글을 봐서 시도해보니 엄청 간단하게 해결됐습니다. 📌 mapper 변경 전 SELECT m.id, m.nm, f.APLY_DT, q.APRV..
-
[Spring Boot] ajax 요청시 404 뜰 때spring boot 2023. 10. 21. 17:57
📌 Setting - java : 11 - oracle : 11c - framework : spring Boot / maven 📢 Error & Solution 컨트롤러 만들어서 기능 테스트를 진행하는 중 ajax 통신시 404가 계속해서 발생했습니다. 구글링을 해도 저와 같은 케이스가 없어서 난항을 겪던중 인텔리제이에서 war로 배포하여 실행하고 있었는데 application context를 /프로젝트명_war로 설정하여 url이 localhost:8080/프로젝트명_war 였습니다. 그래서 application context를 /로 수정하고 다시 빌드하니 정상작동 됨을 확인했습니다. (머슥)
-
[Spring Boot] Maven 환경 Oracle 연동하기spring boot 2023. 10. 14. 12:12
📌 Setting - java : 11 - oracle : 11c - framework : spring Boot / maven 💻 application.yml datasource: driver-class-name: oracle.jdbc.driver.OracleDriver url: username: password: - url 1) Oracle9 버전인 경우 "jdbc:oracle:thin:@localhost:1521:XE" 2) Oracle11 버전인 경우 "jdbc:oracle:thin:@localhost:1521:orcl" - username oracle 유저 명 - password oracle 유저의 패스워드 💻 DBConfig.java @Configuration public class DBConf..
-
📙 [Error] Error resolving template [like/65/find], template might not exist or might not be accessible by any of the configured Template Resolvers ...spring boot 2023. 9. 19. 16:46
json Error resolving template [like/65/find], template might not exist or might not be accessible by any of the configured Template Resolvers 📃 내용 Spring boot와 타임리프를 사용하고 있으며 해당 에러는 게시글에 들어가서 좋아요를 눌렀는지에 대한 내용을 불러오기 위한 ajax를 통신할 때 발생했다. 해당 에러는 타임리프 템플릿 사용시 보통 경로를 찾지 못해서 발생하는데 이번 케이스에는 해당하지 않았다. 📃 원인 JSON 형식의 데이터를 전송하거나 응답 값으로 받을 때, Java에서 해당 JSON 데이터를 Java 객체로 변환해야 한다. 그러한 일련의 과정을 @RequestBody, @..
-
📙 [Error] No setter found for the keyProperty 'id' in ...spring boot 2023. 9. 18. 23:55
📃 내용 No setter found for the keyProperty 'id' in spring boot로 mapper 테스트 하던 중 데이터베이스에 데이터는 들어가는데 테스트가 실패로 떠서 확인해보니 위와 같은 오류가 발생했다. 해당 컬럼은 자동으로 숫자를 증가시키는 auto_increment 속성으로 되어 있었다. 💡 해결방법 mapper에 useGenerateKeys = "true" 옵션이 들어가 있었는데 해당 부분을 삭제하니 에러 없이 테스트가 정상 처리 되었다.
-
📕 IntelliJ Thymeleaf 이미지 서버 재시작 없이 반영spring boot 2023. 9. 11. 00:50
Spring Boot로 게시판을 만드는 중 이미지 업로드 하고 게시글을 확인했을 때 바로 적용되지 않는 문제가 있었다. 서버 재시작하면 정상적으로 반영되는데 이미지 확인하기가 불편해서 이미지를 바로 볼 수 있는 방법을 찾아봤다. 이 방법 역시 IntelliJ에서 폴더 클릭 후 페이지 새로고침을 해야 정상적으로 보이는 게 흠이긴 하지만 아예 서버 재시작을 하지 않아도 된다는게 그나마 장점이라면 장점! 🔧 build.gradle 수정 developmentOnly 'org.springframework.boot:spring-boot-devtools' 🔧 application.properties 수정 spring.thymeleaf.cache=false spring.devtools.livereload.enabled..
-
📕 [Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', ] Spring boot mybatis 데이터 insert 시 따옴표 안 들어가는 이슈spring boot 2023. 9. 5. 21:35
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ', 'C:\bookbag\upload-file\230905e3ae6623bec24e7abbde8049fddb3040.png' at line 2 Spring boot로 게시판을 만드는 도중 새로운 테이블을 생성하고 데이터 insert 테스트를 하는데 SQL syntax 에러가 발생했다. 보통 SQL Systax 에러는 지정해주는 위치 인근에 SQL 문법을 확인하면 이유가 나오기 때문에 간단히 해결될줄 알았으나 insert 하는 데이터에 ..