사용자가 특정 작업을 수행 할 권한이 있는지 여부를 결정하기 위해 매우 복잡한 논리에 의존하는 Spring Boot 애플리케이션이 있습니다. 하지만 내 템플릿을 렌더링 할 때 해당 권한을 기반으로 특정 UI 요소를 표시할지 여부를 결정해야하며, 현재이를 수행하는 유일한 방법 mayUserDo...
은 뷰 모델에 수많은 속성을 전달하는 것입니다 .
대신 a UserPermissionsService
를 내 모델에 전달하고 해당 서비스에서 메서드를 호출하여 템플릿에서 이러한 간단한 검사를 수행하는 것이 훨씬 쉬울 것이므로 많은 중복 변수가 떠 다니는 혼란을 피할 수 있습니다.
그래서 제 질문은 이것이 수용 가능한 해결책입니까? 그렇지 않다면 왜 안됩니까?
thymeleaf 템플릿에서 서비스를 호출하는 것은 나쁜 습관이라고 생각합니다.
템플릿 작업은 데이터를 표시하는 것입니다. 템플릿에 로직을 더 많이 넣을수록 템플릿을 이해하고 유지하기가 더 어려워집니다.
또한 테스트에 대해 생각해보십시오. 서비스가 하나의 사용 사례에 대한 모든 필드가있는 하나의 DTO를 반환하는 경우 동일한 요구 사항으로 각 메서드를 테스트하고 다루는 메서드 간의 관계를 갖지 않고 한 번에이 개체의 완전성과 정확성을 쉽게 테스트 할 수 있습니다. .
문제를 해결하기 위해 템플릿을 더 작은 부분으로 나누고 함께 결합하는 것을 고려할 수 있습니다. 예를 들어 일정하게 유지되는 헤더를 추출 할 수 있습니다. 하나의 "양성"사례와 하나의 "음성"사례가 여러 필드에 대한 액세스를 결정하는 경우이 부분도 더 작은 템플릿으로 추출 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다