상세 컨텐츠

본문 제목

spring error message처리 (JSR-303)

카테고리 없음

by shika 2022. 2. 2. 19:38

본문

먼저 error메세지를 처리하기에 앞서

내가 지정한 문장을 error메세지로 지정하는 방법에 대해서 알아보자.

먼저 properties파일에 에러발생시에 일어날 문장을 적어준다.

그리고 그것을 메세지파일로 사용하겠다는 과정을 거쳐야한다

 

그 방법에 대해서 먼저 알아보자

먼저 @Bean으로 등록하는것이다.

//properties파일을 메세지로 등록한다.
	@Bean
	public ReloadableResourceBundleMessageSource messageSource() {
		ReloadableResourceBundleMessageSource res = new ReloadableResourceBundleMessageSource();
		res.setBasename("WEB-INF/properties/error_message");
        //경로에 파일뒤에 붙는 .properties는 제외한다
		return res;
	}

이렇게 하면 내가 지정한 경로에 있는 .properties파일(내가 지정한 값이 들은)을

메세지로 지정하는 과정이 완료된다.

 

 그 후 컨트롤러에서 @Valid와 함께 보내는쪽, 그리고 받는쪽 모두에

커맨드 객체를 지정해주자

@Controller
public class TestController {
	@GetMapping("/input_data")
	public String input_data(DataBean1 dataBean1) {
		return "input_data";
	}
	
	@PostMapping("input_pro")
	public String input_pro(@Valid DataBean1 dataBean1,BindingResult result) {
		
		if(result.hasErrors()) {
			return "input_data";
		}
		return "input_success";
	}
}

 

BindingResult result는 에러를 받아내기 위해서 사용한다.

 

 

그 다음에 이제 핵심에 대해서 알아보자.

에러메세지를 지정할 떄 .properties파일에 문장을 지정할 때는

어노테이션명.모델어트리뷰트(맨앞소문자)객체타입.프로퍼티명

이렇게 지정한다

 

이게 무슨 말이냐면 예를 들어

커멘드객체에

@AssertTrue
private boolean data1;

이렇게 지정을 해준다면

AssertTrue.dataBean1.data1 이렇게 .properties파일에 적으면 된다.

ex)

AssertFallse.dataBean1.data2

Max.dataBean1.data3 등등

AssertTrue.dataBean1.data1 = data1은 true가 아닙니다.

 

jsp에서 사용시에

<body>
	<h1>input_data</h1>
	<form:form action="input_pro" modelAttribute="dataBean1" method="post">
		
		data1 : <form:radiobutton path="data1" value="true"/> true
				<form:radiobutton path="data1" value="false"/> false <br>
		<form:errors path='data1'/><br>
		<form:button type="submit">확인</form:button>
	</form:form>
</body>

이렇게하고 출력시 밑의 이미지가 나오게 된다.

 

이런식으로 찾아 사용하고 에러의 종류는

구글링을 통해 해결하도록 하자.

다 사용법은 똑같다

 

잘 복습해서 사용하자.

에러의 종류는 밑의 사진의 내용을 많이 사용한다고 한다.

이런 종류를 많이 사용한다.

댓글 영역