메모장

Spring boot 유효성검사 (2) 에러메세지 본문

Spring/개념정리

Spring boot 유효성검사 (2) 에러메세지

Itchild 2024. 8. 7. 14:02
728x90
반응형

 

저번 포스팅 에서 에러 로그가 잘 찍히도록 실습을 진행 하였다 .

 

그러나 코드를 보면

로그는 찍히는데 요 부분의 에러 메세지는 출력이 안되는 것을 알 수 있다.

이건 어떻게 해야 하는지 알아보자 !

 

 


@RequestMapping("/test") // method요청 써도됨  // @Valid 너 만들라고 시킨거 얘 검사할때 시키는거야 
	public String root(@Valid VO vo, BindingResult br, Model model) { // 커맨드 객체 , Model model , 에러친구 커맨드 객체로 받아올 수 있게 
		// 검사 코드가 컨트롤러에 그대로 오픈 되어 있지 않다 . 따로 검사 객체에 들어가있다. 
		// 서버 통신과 관련된 컨트롤러가 있고 검사만 진행하는 컨트롤러가 따로 있다 . 
		
		
		
      VOValidator voV = new VOValidator(); 
		voV.validate(vo, br); // 검사를 했을때 검사 할게 여러가지 일 수 있는데 자바에서 그게 안되기 때문에 따로 객체를 사용할 수 있다. br 는 커맨드 객체(참조변수)를 참조하고 있다. 
		// validate 메서드 강제에 의해 만들어진 메서드 

		if(br.hasErrors()) {
			System.out.println("로그 : 에러 발생함!");
			System.out.println("발생한 에러목록");
			System.out.println(br.getAllErrors()); //전체를 출력해준다. // for문과도 잘 어울림 

			if(br.getFieldError("id") != null) { // id에서 에러가 발생했을때 
				System.out.println(br.getFieldError("id").getCode());
			}
			if(br.getFieldError("password") != null) {
				System.out.println(br.getFieldError("password").getCode());
				// 어노테이션으로 설정한거 볼게 
			}
		}
		
		model.addAttribute("apple", vo.getId());
		return "test";
	}
 

에러가 not null 일때 즉 , br.getFieldError("id") id에서 에러가 발생했다면

br.getFieldError("id").getCode() ==> 에러 메세지 보여줘

 

 

 

728x90
반응형

'Spring > 개념정리' 카테고리의 다른 글

Spring boot [ DB 연결하기 ]  (0) 2024.09.03
Spring 유효성 검사 (3)  (0) 2024.09.03
Spring boot 유효성 검사 (1)  (0) 2024.08.07
Spring boot 요청을 처리하는 방법  (0) 2024.08.07
Spring boot 의 static 폴더  (0) 2024.08.07