재밌고 어려운 IT를 이해해보자~!

Validator 본문

코리아IT핀테크과정

Validator

언제나즐거운IT 2024. 3. 13. 19:37

 


[ 사용자의 입력값 검증 ]
 : 사용자가 입력값을 요청에 넣어서 보냈을때,
   최소한의 조건을 만족한 값인지 확인하는
   Spring의 기본제공기능
 ▶ 유효성 검증 객체 Validator

※ webapp 하위에 VIEW 파일
※ WEB-INF 하위에 VIEW 파일을 두는 이유는? → 클라이언트단에서의 URL직접접근을 막기위함

1) model 객체 활용
2) @ModelAttribute 활용
3) @ModelAttribute("이름") 이름정해서 활용

 

 

CTRL

package com.koreait.day072;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import jakarta.validation.Valid;

@Controller
public class TestController {

	@RequestMapping("/")
	public String root() {
		return "index";
	}
	
	@RequestMapping("/test")
	public String test(@Valid @ModelAttribute("member") MemberDTO mDTO, BindingResult result) {
		System.out.println(mDTO);
		
		/*
		// 강한 결합의 코드
		// 결합도가 높은 코드 ▷ 안좋음.....
		MemberDTOValidation validator=new MemberDTOValidation();
		validator.validate(mDTO, result);
		*/
		if(result.hasErrors()) {
			
			if(result.getFieldError("name") != null) {
				System.out.println("controller 로그 01");
				System.out.println(result.getFieldError("name").getDefaultMessage());
				// 3번째인자가 출력될 예정
			}
			if(result.getFieldError("age") != null) {
				System.out.println("controller 로그 02");
				System.out.println(result.getFieldError("age").getDefaultMessage());
			}
			
			return "index";
		}		
		
		return "main";
	}
	/*
	// 약한 결합의 코드
	// 결합도가 낮은 코드 ▶ 굿!~~
	@InitBinder
	void initBinder(WebDataBinder binder) {
		binder.setValidator(new MemberDTOValidation());
	}
	*/
}

컨트롤러에서 적용시키는 유효성!

'코리아IT핀테크과정' 카테고리의 다른 글

Model 파트의 4단진화 [MyBatis]  (2) 2024.03.29
Lombok  (0) 2024.03.12
@PathVariable, 다양한 Ctrl 메서드  (0) 2024.03.11
MySQL 설치  (0) 2024.03.10
Command 객체  (2) 2024.03.07
Comments