각 template에서 오류 메시지를 출력하기 위한 부분의 중복이 있다.
<div class="alert alert-danger" role="alert" th:if="${#fields.hasAnyErrors()}">
<div th:each="err : ${#fields.allErrors()}" th:text="${err}" />
</div>
이런 중복을 없애기 위해서는 어떻게 해야할까?
“공통 템플릿”을 사용해 에러메시지를 출력하는 부분의 중복을 없애보자.
1. 중복되는 영역 템플릿 생성
form_errors.html 파일을 만들어 중복되는 부분을 템플릿 상속으로 해결할 수 있도록 한다.
<div th:fragment="formErrorsFragment" class="alert alert-danger"
role="alert" th:if="${#fields.hasAnyErrors()}">
<div th:each="err : ${#fields.allErrors()}" th:text="${err}" />
</div>
여기서 th:fragment=”formErrorsFragment” 라는 속성을 추가했는데, 이는 반복되는 부분을 처리하기 위한 것이다.
2. 공통 템플릿 적용
공통 템플릿을 적용하기 위해 각 form.html을 수정한다.
<div th:replace="form_errors :: formErrorsFragment"></div>
여기서 replace는 해당 태그를 완전히 대체하는 방법으로 해당 구간을 form_error.html 파일의 fragment 속성이 formErrorsFragment인 영억으로 변경한다.
'Spring' 카테고리의 다른 글
[Spring]기능 - 페이징 기능 (0) | 2022.08.17 |
---|---|
[Spring]기능 - 네비게이션 바 (0) | 2022.08.17 |
[Spring]Spring 시작해보기(13) - 답변 등록 오류 (0) | 2022.08.17 |
[Spring]Spring 시작해보기(12) - 질문 등록 버튼 및 폼 생성 (0) | 2022.08.16 |
[Spring]Spring 시작해보기(11) - Template 상속 (0) | 2022.08.16 |