Spring

· 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 ..
· Spring
스프링 메시지 태그에서 인자를 처리하는 방법에 대해 알아보겠습니다.spring:message> 태그의 메시지 인자 처리properties 파일register.done={0}님, 회원 가입을 완료했습니다.{0} : 프로퍼티 값 부분인덱스 기반 변수 중 0번 인덱스(첫 번째 인덱스)의 값으로 대치되는 부분 표시MessageSource의 getMessage()는 인덱스 기반 변수를 Object 배열 타입의 파라미터를 사용String getMessage(String code, Object[] args, String defaultMessage, Locale loacle);String getMessage(String code, Object[] args, Locale locale);get..
· Spring
스프링은 로케일(지역)에 상관없이 일관된 방법으로 문자열(메시지)을 관리할 수 있는 MessageSource 인터페이스를 정의하고 있습니다.MessageSource 인터페이스의 정의특정 로케일에 해당하는 메시지가 필요한 코드는 MessageSrouce의 getMessage() 메서드를 이용해서 필요한 메시지를 가져와서 사용합니다.package.org.springframework.context;import java.util.Locale;public interface MessageSource{ String getMessage(String code, Obejct[] args, String defaultMessage, Locale locale); String getMessage(Strin..
· Spring
사용자 화면에 보일 문자열은 JSP나 html등에 직접 코딩하는 경우예를 들어 로그인 폼을 보여줄 때 '아이디', '비밀번호' 등의 문자열을 직접 삽입하는 경우이메일이메일 이라는 문자열을 사용하는 모든 JSP 파일을 모두 찾아서 변경해야하는 문제점다국어 지원 문제 : 전 세계대상 서비스의 경우 사용자의 언어 설정에 따라 이메일, E-mail과 같이 각 언어에 맞게 문자열을 표시해야하는 문제점해결법 : 뷰 코드에서 사용할 문자열을 언어별로 파일에 보관하고 뷰 코드는 언어에 따라 알맞은 파일에서 문자열을 읽어와 출력문자열을 담은 메시지 파일을 작성한다.메시지 파일에서 값을 읽어오는 MessageSource 빈을 설정한다.JSP 코드에서 태그를 사용해서 메시지를 출력한다.src/main/resources/m..
· Spring
Spring MVC에 GET, POST 방식에 동일 이름 커맨드 객체 사용하는 방법을 알아보겠습니다. form 태그를 사용하려면 커맨드 객체가 반드시 존재해야 합니다. 폼 표시 요청이 왔을 때에도 커맨드 객체를 생성해서 모델에 저장해야 합니다. RegisterController 클래스의 handleStep2() 메서드는 다음과 같이 Model에 직접 객체를 추가합니다. @PostMapping("/register/step2")public String handleStep2(@RequestParam(value = "agree", defaultValue = "false") Boolean agree, Model model) { if(!agree) { return "register/step1"; ..
runnnerDevHong
'Spring' 카테고리의 글 목록