Thymeleaf를 이용하여 웹 어플리케이션을 개발할 때, 유효성 검사 및 에러 처리는 매우 중요한 부분이다.
이번 블로그 포스트에서는 Thymeleaf에서 사용자 정의 속성을 이용한 에러 처리 방법에 대해 설명하겠다.
<style>
.field-error {
font-size:0.8em
}
</style>
<span class="field-error" th="error">
//글로벌오류
//총액 (상품수량*단가)1000만원 초과 금지
if(SaveForm.getQuantity()* saveForm.getPrice() > 100000L ) {
bindingResult.reject(errorcode"",errorArgs null, defalutMessage"총액(상품수량x단가) 10만원 초과 안됩니다")
return "product/saveForm"
}//상품 정보 저장 폼에서 총액이 1,000만 원을 초과하는 경우 에러 발생시키는 코드다.
if(saveForm.getQuantity()= 100) {
bindingResult.reject("quantity",null,"총액 초과~안됩니다")}
//위는 html에 반영 안되고 있는 것.
//HTML에 에러 메시지 반영하기(Input 창 옆)
SaveForm.html
<div th:if "${#fields.hasGlobalErrors()} ">
<p class="field-error" th:each="${#fields.globalErrors()" th:text="${err}> </p>
// 다음과 같이 Thymeleaf의 th:if와 th:each 속성을 이용하여 전역 에러 메시지를 출력할 수 있다.
</div>
에러 처리 로직이 복잡해지면 하드코딩된 에러 코드를 별도의 파일에 정리하고, 소스 코드에서는 에러 코드만 참조하는 것이 좋다. 이렇게 하면 에러 코드가 변경되더라도 소스 코드를 수정할 필요가 없으며, 외부 파일에서만 수정하면 되기 때문이다.
결론적으로, Thymeleaf에서 사용자 정의 속성을 이용한 에러 처리를 통해 유효성 검사 및 에러 메시지 출력을 간편하게 할 수 있다. 이 방법을 사용하면 코드의 가독성과 유지보수가 편해진다.
'Developer 지식' 카테고리의 다른 글
CSR&SSR (0) | 2023.04.13 |
---|---|
단위테스트 AAA (0) | 2023.04.13 |
데이터 검증이 중요한 이유와 웹 애플리케이션에서 데이터 검증 방법 (0) | 2023.04.13 |
Java Persistence API (JPA)를 이용한 Oracle DB 연동하기 (0) | 2023.04.13 |
자바 코딩 인터뷰 완벽 가이드 책 리뷰 : "연관(Association)"에 대해서 다른 사람한테 설명하기 및 코드 구현 (0) | 2023.04.13 |