재밌고 어려운 IT를 이해해보자~!
Validator 본문
[ 사용자의 입력값 검증 ]
: 사용자가 입력값을 요청에 넣어서 보냈을때,
최소한의 조건을 만족한 값인지 확인하는
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