Spring
Validator
nsh95
2024. 3. 13. 10:46
[사용자의 입력값 검증]
사용자가 입력ㄱ밧을 요청에 넣어서 보냈을 때,
최소한의 조건을 만족한 값인지 확인하는
Spring 의 기본제공기능
-> 유효성 검증 객체 Validator
webapp 하위에 VIEW 파일
WEB-INF 하위에 VIEW 파일을 두는 이유는? -> 사용자의 직접 접근을 막기 위해
- @ModelAttribute(“이름”) 이름 정해서 활용
package com.koreait.day072;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import jakarta.validation.Valid;
@Controller
public class TestController {
@RequestMapping("/")
public String root() {
return "index";
}
@RequestMapping("/test")
public @ResponseBody String test(@Valid @ModelAttribute("member") MemberDTO mDTO, BindingResult result, Model model) {
System.out.println(mDTO);
// 결합도가 높은 코드 -> 별로
// MemberDTOValidation validator=new MemberDTOValidation();
// validator.validate(mDTO, result);
if (result.hasErrors()) {
if (result.getFieldError("name") != null) {
System.out.println(result.getFieldError("name").getDefaultMessage());
}
if (result.getFieldError("age") != null) {
System.out.println(result.getFieldError("age").getDefaultMessage());
}
return "index";
}
// model.addAttribute("name", mDTO.getName());
// model.addAttribute("age", mDTO.getAge());
return "main";
}
// 결합도가 낮은 코드
// @InitBinder
// void initBinder(WebDataBinder binder) {
// binder.setValidator(new MemberDTOValidation());
// }
}