먼저 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>
이렇게하고 출력시 밑의 이미지가 나오게 된다.
이런식으로 찾아 사용하고 에러의 종류는
구글링을 통해 해결하도록 하자.
다 사용법은 똑같다
잘 복습해서 사용하자.
에러의 종류는 밑의 사진의 내용을 많이 사용한다고 한다.
이런 종류를 많이 사용한다.
댓글 영역