Java/Spring
-
Spring Boot 에서 Form 태그를 사용하여 Post 방식으로 데이터를 넘길때 415 에러가 난다. 간단하게 테스트를 위해 Spring Boot + Thymeleaf 템플릿 엔진을 설정하여 진행하였다. Controller package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.spri..
Form 태그 데이터 DTO 바인딩(Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported)Spring Boot 에서 Form 태그를 사용하여 Post 방식으로 데이터를 넘길때 415 에러가 난다. 간단하게 테스트를 위해 Spring Boot + Thymeleaf 템플릿 엔진을 설정하여 진행하였다. Controller package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.spri..
2022.06.15 -
1. Spring Boot Project 생성 2. Spring Boot Thymeleaf dependency 추가 2-1. pom.xml 에 dependency 추가 org.springframework.boot spring-boot-starter-thymeleaf 2-2. Maven Updatepom.xml에 thymeleaf dependency 를 추가했으므로 의존성 및 필요한 라이브러리를 추가하기 위해 Maven update 실행Project 오른쪽 마우스 클릭 > Maven > Update Project Update Project 클릭 시 아래와 같은 화면해당 프로젝트 클릭 후(자동클릭) OK 버튼 클릭 3. View 설정을 위한 application.yml 설정 추가기본적으로 src/..
Spring Boot Thymeleaf 설정1. Spring Boot Project 생성 2. Spring Boot Thymeleaf dependency 추가 2-1. pom.xml 에 dependency 추가 org.springframework.boot spring-boot-starter-thymeleaf 2-2. Maven Updatepom.xml에 thymeleaf dependency 를 추가했으므로 의존성 및 필요한 라이브러리를 추가하기 위해 Maven update 실행Project 오른쪽 마우스 클릭 > Maven > Update Project Update Project 클릭 시 아래와 같은 화면해당 프로젝트 클릭 후(자동클릭) OK 버튼 클릭 3. View 설정을 위한 application.yml 설정 추가기본적으로 src/..
2022.05.31 -
, , if문과 같이 MyBatis xml 파일에서 쿼리문을 날릴때 조건문으로 사용할 수 있다. > 사용법 쿼리문1 쿼리문2 쿼리문3 쿼리문4 쿼리문5 위처럼 태그 안에 태그를 사용하고 태그의 test 속성으로 조건문을 넣어 사용한다. 그리고 태그의 조건문이 True 일 경우 해당 쿼리문을 실행한다. 모든 태그의 조건문이 False 일 경우 태그 쿼리문을 실행한다. , , 태그의 가장 중요한점은 하나라도 True 가 발생하면 해당 쿼리문을 실행한 후 다음 태그엔 접근하지 않고 종료된다. 여기서 MyBatis 태그와 차이점을 예시를 통해 알아보자 > 예시(if) SELECT * FROM test WHERE name = 'obo' AND number like '%010%' AND address like '%..
MyBatis 동적 SQL(choose, when, otherwise, set), , if문과 같이 MyBatis xml 파일에서 쿼리문을 날릴때 조건문으로 사용할 수 있다. > 사용법 쿼리문1 쿼리문2 쿼리문3 쿼리문4 쿼리문5 위처럼 태그 안에 태그를 사용하고 태그의 test 속성으로 조건문을 넣어 사용한다. 그리고 태그의 조건문이 True 일 경우 해당 쿼리문을 실행한다. 모든 태그의 조건문이 False 일 경우 태그 쿼리문을 실행한다. , , 태그의 가장 중요한점은 하나라도 True 가 발생하면 해당 쿼리문을 실행한 후 다음 태그엔 접근하지 않고 종료된다. 여기서 MyBatis 태그와 차이점을 예시를 통해 알아보자 > 예시(if) SELECT * FROM test WHERE name = 'obo' AND number like '%010%' AND address like '%..
2022.05.27 -
@RequestBody 와 @ModelAttribute 어노테이션은 클라이언트 측에서 보낸 데이터를 Java 에서 사용할 수 있도록 데이터 자동 바인딩 해주는 어노테이션이다. @RequestBody 클라이언트가 보내는 HTTP 요청 본문(Body안의 JSON 및 XML 데이터)을 Java Object로 변환하는 것이다. HTTP 요청 본문 데이터는 Spring에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 변환된다. 특징 - @RequestBody를 사용하면 요청 본문의 JSON, XML, Text 등의 데이터가 적합한 HttpMessageConverter를 통해 파싱되어 Java 객체로 변환된다. - @RequestBody를 사용할 객체는 필드를 바인딩할 생성자나 Sett..
@RequestBody 와 @ModelAttribute@RequestBody 와 @ModelAttribute 어노테이션은 클라이언트 측에서 보낸 데이터를 Java 에서 사용할 수 있도록 데이터 자동 바인딩 해주는 어노테이션이다. @RequestBody 클라이언트가 보내는 HTTP 요청 본문(Body안의 JSON 및 XML 데이터)을 Java Object로 변환하는 것이다. HTTP 요청 본문 데이터는 Spring에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 변환된다. 특징 - @RequestBody를 사용하면 요청 본문의 JSON, XML, Text 등의 데이터가 적합한 HttpMessageConverter를 통해 파싱되어 Java 객체로 변환된다. - @RequestBody를 사용할 객체는 필드를 바인딩할 생성자나 Sett..
2022.05.25 -
Thymeleaf 템플릿 엔진에서 ajax 요청 등 Api 요청 URL 앞에 붙여야할 어플리케이션 ContextPath를 사용해야할 때가 있다. 이때 Thymeleaf 속성을 사용하여 ContextPath를 설정하고 변수명으로 호출하여 사용할 수 있다. 보통 Thymeleaf dialect 라이브러리를 사용하여 Layout을 맞추므로 dialect 기준으로 예시를 보여드립니다. 항상 화면에 보여지는 header 부분에 아래와 같은 코드를 추가한다. http 요청 정보에서 getContextPath() 메서드를 사용하여 정보를 가져온다.Thymeleaf 템플릿 엔진이기 때문에 위 th: 구문은 꼭 써야한다. 또는 application.properties 나 application.yml 에 설정한 cont..
Thymeleaf Javascript 에서 ContextPath 가져오기Thymeleaf 템플릿 엔진에서 ajax 요청 등 Api 요청 URL 앞에 붙여야할 어플리케이션 ContextPath를 사용해야할 때가 있다. 이때 Thymeleaf 속성을 사용하여 ContextPath를 설정하고 변수명으로 호출하여 사용할 수 있다. 보통 Thymeleaf dialect 라이브러리를 사용하여 Layout을 맞추므로 dialect 기준으로 예시를 보여드립니다. 항상 화면에 보여지는 header 부분에 아래와 같은 코드를 추가한다. http 요청 정보에서 getContextPath() 메서드를 사용하여 정보를 가져온다.Thymeleaf 템플릿 엔진이기 때문에 위 th: 구문은 꼭 써야한다. 또는 application.properties 나 application.yml 에 설정한 cont..
2022.05.18 -
final 키워드 final의 의미는 최종적이라는 뜻을 가지고 있습니다. final 키워드를 사용했을 때 초기화가 되면 최종적인 값이 되어 프로그램 도중에 수정을 할 수 없습니다. final 키워드는 변수, 메서드, 클래스에 사용될 수 있습니다. 또한 변수, 메서드, 클래스 중 어디에 사용하냐에 따라 다른 의미를 가집니다. final 필드 // final 필드 [= 초기값]; final int number = 1; final 필드 타입은 위와 같이 선언하며 final 필드의 초기값을 줄 수 있는 방법은 2가지 있습니다. 첫번째는 위 코드와 같이 선언과 동시에 초기값을 선언하는 방법과 두번째는 생성자를 통해서 초기값을 주는 방법이 있습니다. 보통 단순한 값이라면 final 필드 선언과 동시에 초기값을 주는..
final 키워드final 키워드 final의 의미는 최종적이라는 뜻을 가지고 있습니다. final 키워드를 사용했을 때 초기화가 되면 최종적인 값이 되어 프로그램 도중에 수정을 할 수 없습니다. final 키워드는 변수, 메서드, 클래스에 사용될 수 있습니다. 또한 변수, 메서드, 클래스 중 어디에 사용하냐에 따라 다른 의미를 가집니다. final 필드 // final 필드 [= 초기값]; final int number = 1; final 필드 타입은 위와 같이 선언하며 final 필드의 초기값을 줄 수 있는 방법은 2가지 있습니다. 첫번째는 위 코드와 같이 선언과 동시에 초기값을 선언하는 방법과 두번째는 생성자를 통해서 초기값을 주는 방법이 있습니다. 보통 단순한 값이라면 final 필드 선언과 동시에 초기값을 주는..
2022.05.18