티스토리 뷰
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
링크
TAG
- 미래의나에게동기부여
- consumer
- 루틴기록
- ACTUATOR
- github
- Gateway
- MariaDB
- rabbitmq
- producer
- docker
- 운동일기
- zipkin
- Feign
- Logstash to ElasticSearch
- 오늘저녁 삼겹살
- config
- Logstash 활용
- 빅-오
- Kafka Connect
- 운동
- prometheus
- JWT
- git
- elasticSearch
- MSA
- kafka
- springcloud
- UserService
- LoadBalancer
- Spring + ELK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함