티스토리 뷰

package com.creat.com;

import org.springframework.validation.Errors;

public interface Vaildator {
public boolean support(Class<?> arg0);
public void validate(Object obj,Errors errors);
}

 

 

자주 사용할법한 메서드이기 때문에, 인터페이스를 따로 만들어줬다. 

package com.creat.com;

import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;

public class StudentValidator implements Vaildator{

	@Override
	public boolean support(Class<?> arg0) {
		return Student.class.isAssignableFrom(arg0);//검증할 객체의 클래스 타입 
	}

	@Override
	public void validate(Object obj, Errors errors) {
		// TODO Auto-generated method stub
	 System.out.println("validate()");
	 Student student =(Student)obj;
	 
//	 String studentName=student.getName();
//	 if(studentName==null || studentName.trim().isEmpty()) {
//		 System.out.println("studentName is null");
//		 errors.rejectValue("name","trouble");
//	 }
	 ValidationUtils.rejectIfEmptyOrWhitespace(errors,"name","trouble");
	 int studentId= student.getId();
	 if(studentId==0) {
		 System.out.println("studentId is 0");
		 errors.rejectValue("id","troubel");
	 }
	 
	 
		
	}
	

}

 

 

실제로 유효성 검사할 class 

	@Override
	public boolean support(Class<?> arg0) {
		return Student.class.isAssignableFrom(arg0);//검증할 객체의 클래스 타입 
	}

이 부분에서는 검증할 객체의 클래스 타입을 지정해준다. 

@Override
	public void validate(Object obj, Errors errors) {
		// TODO Auto-generated method stub
	 System.out.println("validate()");
	 Student student =(Student)obj;
	 
//	 String studentName=student.getName();
//	 if(studentName==null || studentName.trim().isEmpty()) {
//		 System.out.println("studentName is null");
//		 errors.rejectValue("name","trouble");
//	 }
	 ValidationUtils.rejectIfEmptyOrWhitespace(errors,"name","trouble");
	 int studentId= student.getId();
	 if(studentId==0) {
		 System.out.println("studentId is 0");
		 errors.rejectValue("id","troubel");
	 }
	 
	 
		
	}

 

 

실제로 유효성이 검사되는 부분의 코드 

student name은 null 혹은 공백일경우에 에러가 나도록 만들었는데, 

직접 지정해줘도 되고, null 혹은 공백일경우에는 

ValidationUtils.rejectIfEmptyOrWhitespace(erros,"검증할객체","에러메세지");

형식으로 한줄로도 가능하다 

Id같은경우에는 Int형이기때문에 따로 줄이는 메서드는 존재하지 않고 

if문을 사용해서 값이 0일경우 에러가 발생하도록 만들었다. 

@RequestMapping("/student/create")
	public String studentCreate(@ModelAttribute("student") Student student,BindingResult result) {
		String page="create/createDonePage";
		StudentValidator vaildator= new StudentValidator();
	 vaildator.validate(student, result);
	 if(result.hasErrors()) {
		 page="redirect:/studentForm";
	 }
	 return page;
		
	}

 

실제 컨트롤러에서 해당 유효성을 검사하기 위해서는 위와 같이 작성하면된다. 

StudentValidator를 생성자 형태로 만들고 

validator안에 유효성검사를 하는 메소드를 호출한뒤 검사하고 싶은 객체값을 넣으면 된다. 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함