Spring/이론

스프링 유효성검사

SEOKIHOUSE 2023. 8. 8. 15:49

1번

  • supports(Class<?> clazz) 메서드: 이 메서드는 해당 Validator가 어떤 클래스를 지원하는지 확인하는 역할을 합니다. supports() 메서드는 인자로 전달된 클래스가 특정 클래스나 인터페이스를 상속하거나 구현하는지 여부를 확인하여 참 또는 거짓을 반환합니다. 이 예제에서는 ContentDto.class가 clazz에 전달되었을 때 true를 반환하므로, ContentDto 클래스나 그의 하위 클래스를 검증할 수 있는 Validator임을 나타냅니다.
  • validate(Object obj, Errors errors) 메서드: 이 메서드는 주어진 데이터 객체를 검증하고, 오류가 발견되면 Errors 객체에 오류 정보를 추가합니다. Errors 객체는 Spring Framework에서 제공하는 오류 처리 도구로, 컨트롤러나 서비스 내에서 검증 결과를 처리하는 데 사용됩니다. validate() 메서드 내에서는 ContentDto 객체를 받아 해당 객체의 필드(writer와 content)의 값을 검증합니다. 각 필드가 null이거나 비어있을 경우에는 오류 정보를 추가하고, rejectValue() 메서드를 호출하여 오류 정보를 등록합니다. 오류 정보는 나중에 화면에 표시하거나 프로그램 로직에서 처리할 수 있습니다. 오류 정보의 등록은 다음과 같은 형식으로 이루어집니다:  errors.rejectValue("필드명", "오류코드");                  여기서 "필드명"은 검증할 필드의 이름이며, "오류코드"는 오류를 식별하기 위한 코드입니다. 실제로 오류 메시지는 이 오류 코드에 해당하는 메시지 리소스에서 찾아 사용됩니다.

  • @ModelAttribute("dto") ContentDto contentDto: 이 부분은 ContentDto 객체가 폼 데이터를 받아올 수 있도록 Spring MVC의 데이터 바인딩 기능을 활용합니다. @ModelAttribute 어노테이션은 HTTP 요청에서 파라미터를 추출하여 해당 클래스 객체의 필드에 바인딩해줍니다. "dto"라는 이름으로 바인딩된 객체를 메서드 내에서 사용할 수 있습니다
  • BindingResult result : 이 파라미터는 유효성 검증 결과를 받아오는 역할을 합니다. 유효성 검증 중 발생하는 오류와 관련된 정보가 이 객체에 담기게 됩니다.
  • ContentValidator 클래스의 인스턴스를 생성합니다. 이 객체를 사용하여 입력된 데이터를 유효성 검사
  • validator 객체를 사용하여 contentDto 객체의 유효성을 검사합니다. 검증 결과는 result 객체에 담깁니다.

  • <form action="<%= conPath %>/create">는 HTML 폼을 생성하고, 폼이 제출될 때 데이터를 어떤 URL로 전송할지를 설정하는 부분

practice0808_Validator.zip
0.09MB


2번

practice0808_ValidatorUtils.zip
0.09MB


3번

@Valid: 이 어노테이션은 데이터 유효성 검증을 수행하는데 사용됩니다. 컨트롤러 메서드의 파라미터로 전달되는 객체를 검증하라는 표시입니다. 여기서는 ContentDto 객체에 대해 유효성 검증을 수행할 것입니다.

 

 

practice0808_ValidatorinitBinder.zip
0.09MB


4번

 

practice0808_ValidAnnotation.zip
0.09MB