[Spring]Validator를 이용한 유효성 검사

2024. 6. 17. 11:24·BackEnd/Spring

1. Validator 인터페이스 구현

public class StudentValidator implements Validator {

	@Override
	public boolean supports(Class<?> arg0) {
		// TODO Auto-generated method stub
		return Student.class.isAssignableFrom(arg0);
	}

	@Override
	public void validate(Object obj, Errors errors) {
		System.out.println("validate()");
		Student student = (Student)obj;
		
//      1번째 방법
		String studentName = student.getName();
		if(studentName == null || studentName.trim().isEmpty()) {
			System.out.println("studentName is null or empty");
			errors.rejectValue("name","trouble");
		}
		
		int studentId = student.getId();
		if(studentId == 0) {
			System.out.println("studentId is 0");
			errors.rejectValue("id","trouble");
		}
	}
}

 

2. ValidationUtils 객체 메서드 사용

public class StudentValidator implements Validator {

	@Override
	public boolean supports(Class<?> arg0) {
		// TODO Auto-generated method stub
		return Student.class.isAssignableFrom(arg0);
	}

	@Override
	public void validate(Object obj, Errors errors) {
		System.out.println("validate()");
		Student student = (Student)obj;

//      2번째 방법	
		ValidationUtils.rejectIfEmptyOrWhitespace(errors,"name","trouble","studentName is null or empty");  
        //에러, 필드, 에러코드, 디폴트 에러메세지
		
		int studentId = student.getId();
		if(studentId == 0) {
			System.out.println("studentId is 0");
			errors.rejectValue("id","trouble");
		}
	}
}

3. @InitBinder를 이용한 초기화

<pom.xml>에 hibernate 추가

		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>4.2.0.Final</version>
		</dependency>
        
        <!-- 오류 발생으로 인한 dependency 추가 -->
        <dependency>
		    <groupId>javax.xml.bind</groupId>
		    <artifactId>jaxb-api</artifactId>
		    <version>2.3.1</version>
		</dependency>
		<dependency>
		    <groupId>org.glassfish.jaxb</groupId>
		    <artifactId>jaxb-runtime</artifactId>
		    <version>2.3.1</version>
		</dependency>

 

@RequestMapping(value="/createDonePage", method=RequestMethod.POST)
public String studentCreate(@ModelAttribute("student")@Valid Student student, BindingResult result) {

    String page = "createDonePage";

//		StudentValidator validator = new StudentValidator();
//		validator.validate(student, result);

    if(result.hasErrors()) {
        page= "createPage";
    }
    return page;
}

@InitBinder
protected void initBinder(WebDataBinder binder) {
    binder.setValidator(new StudentValidator());
}

'BackEnd > Spring' 카테고리의 다른 글

[Spring]JDBC Template 정리  (0) 2024.06.20
[Spring]게시판 파일 업로드 라이브러리(COS)  (1) 2024.06.20
[Spring]IntelliJ 자바 버전 변경하는 방법  (0) 2024.06.15
[Spring]MVC에서 데이터를 주고 받는 방법  (0) 2024.06.12
[Spring]AOP(Aspect Oriented Programming)_스프링 핵심원리(고급편)  (0) 2024.06.11
'BackEnd/Spring' 카테고리의 다른 글
  • [Spring]JDBC Template 정리
  • [Spring]게시판 파일 업로드 라이브러리(COS)
  • [Spring]IntelliJ 자바 버전 변경하는 방법
  • [Spring]MVC에서 데이터를 주고 받는 방법
방카킴
방카킴
김행원의 개발 블로그
  • 방카킴
    방카@Dev
    방카킴
  • 전체
    오늘
    어제
    • 분류 전체보기 (46)
      • Notice (2)
      • FrontEnd (5)
        • Javascript (1)
        • CSS (3)
      • BackEnd (25)
        • Java (1)
        • JSP (4)
        • Spring (19)
        • DB (1)
      • Git (1)
      • AI (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    agenticai
    AI
    LLM
    Agent
    북리뷰
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
방카킴
[Spring]Validator를 이용한 유효성 검사
상단으로

티스토리툴바