🚀 from error to study/Back-End(Java)

    [Java] Object의 key 중복 제거 - DeduplicationUtils

    List로 받아온 값 중 특정 key값을 기준으로 중복 삭제 기능을 할 수 있는 유용한 코드 [사용법] 1) DeduplicationUtils.java 파일 생성 2) DeduplicationUtils.java 파일에 package 경로 적용 3) 기존 리스트 조회 4) 기존 리스트와 같은 객체를 사용하는 리스트 생성 5) 4의 새로운 리스트에 아래 적용법 사용 List newList = DeduplicationUtils.deduplication(기존리스트이름, 객체명::get키값); package 패키지 경로; import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util..

    [java] ArrayList 0번째 인덱스에 새로운 값 넣고 한 칸씩 미는 법

    이미 존재하는 ArrayList가 있을 때 해당 list의 0번째 인덱스에 새로운 값을 넣고 기존 값들은 1칸씩 뒤로 밀고 싶을 때 사용하면 좋은 방법 가장 중요한 포인트는 기존 리스트를 clear 후에 addAll을 해 줘야 새로운 리스트 값으로 제대로 복사된다는 점이다 1) 기존 ArrayList 구조 2) 원하는 ArrayList 구조 '통합검색'을 기존 기스트의 0번째 인덱스에 넣고 싶음 3) 방법 확인 1) 기존 리스트와 동일한 구조의 리스트를 새로 만든다 2) 새로운 리스트에 원하는 데이터를 add 한다 3) 새로운 리스트에 기존 데이터를 addAll 한다 4) 기존 리스트를 clear 한다 5) 기존 리스트에 새로운 리스트를 addAll 한다 // 기존 리스트 ArrayList list = ..

    [Spring] form 태그를 submit 했을 때 Controller에서 alert창 띄우게끔 유도하는 2가지 방법

    💡 현재 상황 보통 jsp에서 controller로 값을 넘길 때 아래 2가지 방법을 썼다 1. ajax 사용하기 2. form 태그를 submit 하기 1번 방법(ajax) 사용 시 장점 👉🏻 success 속성을 이용해 function(매개변수) {} 로 손쉽게 controller의 값을 받아와 jsp에서 조건 검사를 할 수 있음 즉, jsp에서 alert창을 띄울 때 용이함 단점 👉🏻 jsp에서 controller로 값을 넘길 때 data 속성에 키:밸류 값을 넘겨 줘야 함 즉, $("선택자").find("선택자").val()과 같이 넘길 요소의 값을 한 번 더 뽑아 줘야 하는 번거로움이 있음 2번 방법(form 태그 submit) 사용 시 장점 👉🏻 jsp에서 controller로 값을 넘길 때 ..

    [Bootstrap] 부트스트랩 모달 열었을 때 커서 깜빡임 속성 [= focus()] 주기

    💡 현재 상황 코멘트를 수정하기 위해 부트스트랩을 사용해 모달창을 띄웠음 그냥 띄워 주기만 하니까 안내창이랑 별반 다르게 보이지 않아 코멘트 수정 내용을 입력하는 곳에 커서 깜빡임 효과를 주고 싶음 근데 onclick을 사용해 모달이 띄워진 시점에 $("#모달아이디값").find("#textarea아이디값").focus() 을 주니 먹히지 않음 📍 해결 방법 부트스트랩 모달이 사용자에게 보여질 때를 집어 이벤트를 주면 됨 모달이 열리고 나서 자동으로 실행되는 이벤트 속성인 shown.bs.modal을 이용하여 해결함 이벤트 타입 설명 show.bs.modal 모달이 열릴 때 바로 실행되는 이벤트 shown.bs.modal 모달이 열리고 나서(열림이 끝났을 때) 실행되는 이벤트 hide.bs.modal 모..

    java.lang.ClassCastException: java.util.ArrayList cannot be cast to VO 객체 경로

    💡 현재 상황 해당 컨텐츠에 대한 내 코멘트를 뽑아 화면에 뿌려 줘야 하는데 해당 쿼리를 통해 한 화면당 뽑을 리뷰는 언제나 1개뿐! 그래서 ArrayList에서 Review로 자료형 변환해 줬더니 ClassCastException이 뜸 📍 해결 방법 Dao의 selectList도 selectOne으로 바꿔 줘야 함 여태까지의 화면에서는 3개 이상의 리뷰를 뽑았기 때문에 ArrayList를 썼는데 해당 화면에서는 1개의 리뷰만 뽑기 때문에 ArrayList를 쓰는 것은 데이터 소모를 일으킨다고 혼났음 (핑빈에게) Controller, Service, ServiceImpl, Dao의 ArrayList 자료형을 모두 Review로 바꿔 줬더니 위의 오류 뜸 selectOne은 1개의 행만 뽑아서 오는 메소드..

    [java] controller에서 jsp로 값을 보내지 못함

    jsp에서 Controller로 보낼 때는 모달창에 정보를 때려넣고 submit으로 보낸 상태 $("#reportSubmitButton").on("click", function() { document.getElementById("report-form").submit(); }); 이렇게 return "; } else { return ""; } }

    [Spring] Error - The method get/set필드명() is undefined for the type VO클래스

    💡 해결 방법 롬복 문제로 판결 땅땅땅 🩺 롬복은 pom.xml에 dependency로 넣어 주기만 하면 끝나는 게 아니라 직접 실행도 해 줘야 함! 📖롬복 사용법(4번 참고) 그리고 실행 후 아래 2줄의 코드를 STS.ini에 추가해 줌 -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar 학원에서 잘되던 프로젝트가 왜 집 컴퓨터에서는 안 돌아갈까... 심지어 getter/setter를 쓴 VO 클래스의 메소드들을 못 들고 옴 Pagination도 안 됨 ㅠㅠ 구글링 하던 중 롬복 문제 그 중에서도 롬복은 따로 설치 후 실행을 해 줘야 한다는 것을 확인함 Maven Dependencies의 lombok-1.18.24.jar의 설치 경로 확인 후 파일 탐색기로 다시 ..

    [Spring] WARN : org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.lang.Integer] with preset Content-Type 'null']

    💡 해결 방법 bean으로 Gson이 등록되어 있는지 확인해 볼 것 com.google.code.gson gson 2.10 checkbox 선택 후 버튼 클릭 시 삭제할 수 있도록 메소드를 만들었는데 DB의 REVIEW_STATUS = 'N'까지 바뀌는데도 ajax 통신 실패가 뜸 콘솔에 뜬 내용은 아래와 같음 WARN : org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.lang.Integer] with preset Conte..

    [Spring] 스프링에서 select, option 태그 값 넘기기(jsp 👈🏻👉🏻 controller 👉🏻 Service)

    💻 jsp ✔️ select, option, 검색창, 검색 버튼 태그가 같은 form 태그 내에 존재해야 함 ✔️ form 태그의 action 속성으로 url mapping 값 주기 ✔️ select 태그에 name 속성 주기 ✔️ option 태그에 value 값과 name 값 주기 이메일 닉네임 콘텐츠명 검색 💻 Controller ✔️ 컨트롤러에서는 jsp의 select 태그, 검색창의 name값과 동일한 매개변수를 받아오기만 하면 됨 @RequestMapping(value="searchComment.ad") public String searchAdminCommentList(String condition, String keyword) { System.out.println("condition: " +..

    TO_CHAR(컬럼이름, 'FM0.0')을 이용해 별점 포맷 '★0.0' 소수점 1자리까지 나오게 하기

    📌 현재 상황 DB에서 끌어왔을 때 1의 자리만 뜸 현재 DB에서는 0.5의 경우 소수점까지 뜨지만 1, 2, 3, 4, 5점일 경우 소수점 0이 안 뜸 해결 방법 1️⃣-1️⃣ TO_CHAR(컬럼명, 'FM0.0') 먼저 DB에 뜨는 값을 모두 소수점까지 반영되도록 해 줌 0 👉🏻 해당 숫자가 존재하지 않아도 무조건 출력 (0으로) 9 👉🏻 없으면 생략함 1) FM9.9 2) FM9.0 3) FM0.9 4) FM0.0 FM0.0 👉🏻 0.5, 5.0 등의 경우가 존재하므로 내가 사용해야 할 조건과 알맞음 select 할 때 👉🏻 REVIEW_STAR는 별점이 담긴 컬럼이름 👉🏻 STS로 가지고 왔을 때 resultMap과 연동해야 하므로 기존 컬럼값으로 별칭 지어 줌 TO_CHAR(REVIEW_STAR..