JAVA/Spring

JAVA/Spring

[Spring/Thymeleaf] 타임리프를 이용해서 ENUM 타입 셀렉트 박스 만들기

요즘 마지막 학기 프로젝트로 인해 뜸했다.. 프로젝트를 진행하면서 도메인 안에 위처럼 ENUM 타입이 있는데 정보를 입력할 때 ENUM은 셀렉트 박스로 하고 싶었다. ENUM public enum CarCategory { LIGHT("경차"), SMALL("소형차"), SEMI_MEDIUM("준중형"), MEDIUM("중형"), SEMI_FORMAL("준대형"), LARGE("대형"); @Getter private final String description; CarCategory(String description) { this.description = description; } } 차량 종류에 대한 ENUM이다. 컨트롤러 /** * enum */ @ModelAttribute("carCategories"..

JAVA/Spring

[Spring] Cannot invoke "" because "" is null 오류 해결

서비스 코드에서 레파지토리를 사용하려고 하는데 제목과 같은 오류가 났을 경우 Repository 선언에 아래와 같이 final을 붙이면 된다. 안 붙이게 되면 빈 주입이 되지 않아 null이 된다. private final UserCarRepository userCarRepository; (서비스 부에서 Repository 선언한 코드) 이런 실수를 하다니

JAVA/Spring

[Spring/트러블 슈팅] DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult

DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errorsField error in object 'usersLocationDto' on field 'lat': rejected value [37.4219504]; codes [typeMismatch.usersLocationDto.lat,typeMismatch.lat,typeMismatch.java.lang.Integer,typeMismatch]; arguments [org.springframework.context.support.Defau..

JAVA/Spring

[MyBatis/트러블 슈팅] Error parsing Mapper XML. The XML location is 'xml 경로'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias '클래스'. Caus..

프로젝트를 하던 도중 오류가 발생하였다. org.apache.ibatis.builder.BuilderException 분명 마이바티스 xml 쿼리도 올바르게 하였고 매핑도 잘 해주었는데 오류가 발생하여서 오류 내용을 잘 읽어보니 객체 클래스를 찾지 못하고 있었다. 해결 방법 application.properties에서 패키지 경로 지정해주기 mybatis.type-aliases-package = siso.project.domain, siso.project.repository.vo, siso.project.repository.dto 마이 바티스를 사용해보면 위 설정을 꼭 지정해두고 사용할 텐데, 위처럼 클래스가 들어가 있는 경로를 지정해주면 오류가 해결된다.

JAVA/Spring

[Thymeleaf/JS] 부모 창에서 자식 창을 띄우고, 자식 창 데이터를 부모 창의 필드에 채워보자! (feat. 가져온 값이 눈에는 보이는

[Spring/Thymeleaf] 타임리프로 팝업창 띄워보기 (feat. div 수직 중앙 정렬) siso 프로젝트를 진행하기 위해 관리자는 웹으로 접근하도록 하기 위해 타임리프를 통해 html을 짜야 했다. 근데 1학년 때 html을 접해보고 그 뒤로 아예 접해보지 못해 너무 어려웠다.. 오늘은 타임 9hyuk9.tistory.com 오늘 해볼 것은 자바스크립트를 사용하여 부모 창에서 자식 창을 띄우고 자식 창 데이터를 부모 창으로 보내보자! 먼저 완성된 모습은 다음과 같다. 동사무소 찾기를 누르면 자식 창을 띄운 후 동사무소를 선택하면 이렇게 기입이 된다. 그러면 일단 어떻게 하는지 알아보자! [부모 창] 자식 창을 띄우는 JS 함수 window.onload = function(){ document...

JAVA/Spring

[Spring/Thymeleaf] 타임리프로 팝업창 띄워보기 (feat. div 수직 중앙 정렬)

siso 프로젝트를 진행하기 위해 관리자는 웹으로 접근하도록 하기 위해 타임리프를 통해 html을 짜야했다. 근데 1학년 때 html을 접해보고 그 뒤로 아예 접해보지 못해 너무 어려웠다.. 오늘은 타임리프에서 팝업창을 통해 동사무소 목록을 띄워볼 것이다. 생각보다 간단하다. html에서 처리해주면 된다. 동사무소 찾기 나는 타임리프를 쓰기 때문에 th:onclick을 통해 어디 주소로 갈 것인지 지정해주면 된다. 추가적으로 div class에서 가운데 정렬 align-items-center만 넣어주면 된다. 실행 결과 이렇게 팝업창이 뜨게 된다! 혹시 부모 창에서 자식 창을 띄워 데이터를 서로 주고받으려면 아래의 포스팅을 참고해주세요! [Thymeleaf/JS] 부모 창에서 자식 창을 띄우고, 자식 창..

JAVA/Spring

[Spring] 스프링 인터셉터란? / 사용해보기 (feat. 비로그인 접근 막기)

[본 포스팅은 스프링 MVC 2편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 인터셉터란? 웹과 관련된 공통 관심 사항을 효과적으로 해결할 수 있는 기술이다. 즉, 인터셉터의 뜻처럼 사용자로부터 서버에 들어온 요청 객체가 핸들러까지 가기 전에 개발자가 추가적인 작업을 할 수 있다. 이 포스팅에서는 로그인이 되어 있지 않은 사용자가 상품에 대한 요청을 할 때 로그인 페이지로 돌려보내는 작업을 해볼..

JAVA/Spring

[Spring] 로그인에 필요한 쿠키, 세션 생성 및 사용법 (서블릿 HTTP 세션)

[본 포스팅은 스프링 MVC 2편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 웹사이트에 로그인을 하게 되면 로그인이 유지된 상태로 서비스를 이용할 수 있어야 한다. 그리고 이용할 수 있게 해주는 것이 쿠키이다. 하지만 쿠키를 사용해서 로그인 Id를 전달하는 쿠키에는 보안 문제가 있다. 쿠키 값은 임의로 변경할 수 있다. 쿠키에 보관된 정보는 훔쳐갈 수 있다. 해커가 쿠키를 한번 훔쳐가면 평생 ..

JAVA/Spring

[Spring] Bean Validation의 한계, 해결하기 위한 방법 두 가지(groups, Form 나누기)

[본 포스팅은 스프링 MVC 2편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com [Spring] Bean Validation이란? / 사용해보기 [본 포스팅은 스프링 MVC 2편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술 9hyuk9.tistory.com 이 게시글에서..

JAVA/Spring

[Spring] Bean Validation이란? / 사용해보기

[본 포스팅은 스프링 MVC 2편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 사용자에게 서비스를 제공할 때 검증은 굉장히 중요한 부분이다. 클라이언트에서 값에 대한 검증이 이루어져야 하고 서버에서도 마찬가지로 검증이 이루어져야 한다. (이유는 클라이언트에서 값을 조작하여 보낼 수 있기 때문이다.) 기존의 검증의 로직은 다음과 같다. //검증 로직 if (!StringUtils.hasText(i..

혁키
'JAVA/Spring' 카테고리의 글 목록