Spring

· Spring
@DateTimeFormat 변환 처리에 대한 이해지정한 형식의 문자열을 LocalDateTime 타입으로 변환누가 LocalDateTime 타입으로 변환해줄까? WebDataBinderWebDataBinder스프링 MVC는 요청 매핑 애노테이션 적용 메서드와 DispatcherServlet 사이를 연결하기 위해 RequestMappingHandlerAdapter 객체를 사용한다.RequestMappingHandlerAdapter 객체는 요청 파라미터와 커맨드 객체 사이의 변환 처리를 위해 WebDataBinder를 이용한다.WebDataBinder는 커맨드 객체를 생성커맨드 객체의 프로퍼티와 같은 이름을 갖는 요청 파라미터를 이용해서 프로퍼티 값을 생성WebDataBinder는 직접 타입을 변환하지 않..
· Spring
컨트롤러에서 쿠키 사용사용자의 편의를 위해 아이디를 기억하고, 다음에 로그인 시도 시, 아이디를 자동으로 넣어주는 사이트가 많음해당 기능을 구현하기 위해 쿠키를 사용한다.이메일 기억하기 기능 구현 방식로그인 폼에 '이메일 기억하기' 옵션 추가로그인 시에 '이메일 기억하기' 옵션을 선택했으면 로그인 성공 후 쿠키에 이메일 저장-> 쿠키는 웹 브라우저를 닫더라도 삭제되지 않도록 유효시간을 길게 설정이후 로그인 폼을 보여줄 때 이메일을 저장한 쿠키가 존재하면 입력 폼에 이메일을 보여준다.컨트롤러에 적용스프링 MVC에서 쿠키를 사용하는 방법 @CookieValue@CookieValue 애노테이션 : 요청 매핑 애노테이션 적용 메서드의 Cookie 파라미터에 적용@GetMappingpublic String for..
· Spring
로그인 하지 않은 상태에서 사용자의 정보(이름, 비밀번호 등)를 바꾸려고 할 때, 세션에서 커맨드 객체 검사하는 코드 추가@GetMappingpublic String form(@ModelAttribute("command") ChangePwdCommand pwdCmd, HttpSession session) { AuthInfo authInfo = (AuthInfo) session.getAttribute("authInfo"); return authInfo == null ? "redirect:/login" : "edit/changePwdForm";}실제 웹 어플리케이션에서는 위와 같이 비밀번호 변경 기능 외에 더 많은 기능에 로그인 여부를 확인해야하고, 코드 중복이 발생한다.이렇게 다수의 컨트롤러에 ..
· Spring
컨트롤러에서 HttpSession 사용요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터 추가요청 매핑 애노테이션 적용 메서드에 HttpServletRequest 파라미터 추가 후, HttpServletRequest를 이용해서 HttpSession 구하기요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터 추가@GetMappingpublic String form(LoginCommand loginCommand, HttpSession session) { return "login/loginForm";}요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터가 존재할 경우 스프링 MVC는 컨트롤러의 메서드를 호출할 때 HttpSession 객체를 파라미터로 전달HttpS..
· Spring
Bean Validation@Valid 애노테이션은 Bean Validation 스펙에 정의되어 있음@NotNull, @Digits, @Size 등의 애노테이션 정의해당 애노테이션을 사용하면 Validator 작성 없이 애노테이션만으로 커맨드 객체의 값 검증을 처리가능Bean Validation 2.0 버전을 JSR 380 이라고 부른다.JSR : Java Specification Request, 자바 스펙 기술 문서각 스펙마다 고유한 JSR 번호를 가지는데, Bean Validation 1.0 : JSR 303, 1.1 : JSR 349Bean Validation 제공 애노테이션을 이용하여 커맨드 객체 값 검증Bean Validation과 관련된 의존 설정 추가커맨드 객체에 @NotNull, @Digi..
· Spring
@InitBinder 애노테이션컨트롤러 범위 Validator 설정 가능package controller;import javax.validation.Valid;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.Errors;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.GetMapping;import org.s..
· Spring
글로벌 Validator 설정과 @Valid 애노테이션글로벌 Validator 적용방법설정 클래스에서 WebMvcCOnfigurer의 getValidator() 메서드가 Validator 구현 객체를 리턴하도록 구현글로벌 범위 Validator가 검증할 커맨드 객체에 @Valid 애노테이션 적용package config;import org.springframework.context.MessageSource;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.support.ResourceBundleM..
· Spring
Errors에 에러 코드를 추가하면 JSP 는 스프링이 제공하는 form:errors> 태그를 사용해서 에에 해당하는 메시지를 출력 : : : : "> form:errors> 태그의 path 속성에러 메시지를 출력할 프로퍼티 이름을 지정에러 코드에 해당하는 메시지 코드를 찾을 때의 규칙1) 에러코드 + . + 커맨드객체이름 + "." + 필드명2) 에러코드 + . + 필드명3) 에러코드 + . + 필드타입..
· Spring
Error 인터페이스가 제공하는 에러 코드 추가 메서드reject(String errorCode);reject(String errorCode, String defaultMessage);reject(String errorCode, Object[] errorArgs, String defaultMessage);rejectValue(String field, String errorCode);rejectValue(String field, String errorCode, String defaultMessage);rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage);에러 코드에 해당하는 메시지가 {0} 이나 {1} 과..
· Spring
커맨드 객체의 값 검증의 중요성폼에 입력한 값을 검증하지 안흥면 잘못된 값이 시스템에 입력되어 어플리케이션이 비정상 동작할 수 있음에러 메시지를 제대로 보여주지 않으면 사용자는 서비스를 제대로 이용할 수 없음스프링이 제공하는 해결 방법커맨드 객체를 검증하고 결과를 에러 코드로 저장JSP에서 에러 코드로부터 메시지를 출력커맨드 객체 검증과 에러 코드 지정하기스프링 MVC에서 커맨드 객체의 값이 올바른지 검사하기 위해 사용하는 인터페이스org.springframework.validationValidatorErrors객체를 검증할 때 사용하는 Validator 인터페이스package org.springframework.validation;public interface Validator { boolean ..
runnnerDevHong
'Spring' 카테고리의 글 목록