thymeleaf 템플릿에 서비스를 전달하는 것은 나쁜 습관입니까?

앤드류 랄리스

사용자가 특정 작업을 수행 할 권한이 있는지 여부를 결정하기 위해 매우 복잡한 논리에 의존하는 Spring Boot 애플리케이션이 있습니다. 하지만 내 템플릿을 렌더링 할 때 해당 권한을 기반으로 특정 UI 요소를 표시할지 여부를 결정해야하며, 현재이를 수행하는 유일한 방법 mayUserDo...은 뷰 모델에 수많은 속성을 전달하는 것입니다 .

대신 a UserPermissionsService를 내 모델에 전달하고 해당 서비스에서 메서드를 호출하여 템플릿에서 이러한 간단한 검사를 수행하는 것이 훨씬 쉬울 것이므로 많은 중복 변수가 떠 다니는 혼란을 피할 수 있습니다.

그래서 제 질문은 이것이 수용 가능한 해결책입니까? 그렇지 않다면 왜 안됩니까?

시뮬 런트

thymeleaf 템플릿에서 서비스를 호출하는 것은 나쁜 습관이라고 생각합니다.

템플릿 작업은 데이터를 표시하는 것입니다. 템플릿에 로직을 더 많이 넣을수록 템플릿을 이해하고 유지하기가 더 어려워집니다.

또한 테스트에 대해 생각해보십시오. 서비스가 하나의 사용 사례에 대한 모든 필드가있는 하나의 DTO를 반환하는 경우 동일한 요구 사항으로 각 메서드를 테스트하고 다루는 메서드 간의 관계를 갖지 않고 한 번에이 개체의 완전성과 정확성을 쉽게 테스트 할 수 있습니다. .

문제를 해결하기 위해 템플릿을 더 작은 부분으로 나누고 함께 결합하는 것을 고려할 수 있습니다. 예를 들어 일정하게 유지되는 헤더를 추출 할 수 있습니다. 하나의 "양성"사례와 하나의 "음성"사례가 여러 필드에 대한 액세스를 결정하는 경우이 부분도 더 작은 템플릿으로 추출 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

$ scope를 서비스에 전달하는 것이 나쁜 습관입니까?

분류에서Dev

행동에 기호를 사용하는 것은 왜 나쁜 습관입니까?

분류에서Dev

$ emit 및 $ broadcast를 사용하여 지시문, 컨트롤러 및 서비스간에 데이터를 전달하는 것이 나쁜 습관입니까?

분류에서Dev

0.0.0.0에서 듣는 것이 나쁜 습관입니까? 왜?

분류에서Dev

JUnit 테스트에서 모든 예외를 던지는 것은 나쁜 습관입니까?

분류에서Dev

클래스 네임 스페이스에 다른 개체를 배치하는 것은 나쁜 습관입니까?

분류에서Dev

Activity의 인스턴스를 매개 변수로 전달하고 다른 클래스에서 finish ()하는 것이 나쁜 습관입니까?

분류에서Dev

github에서 백엔드를 노출하는 것이 나쁜 습관입니까?

분류에서Dev

화면 밖에서 uiview를 시작하는 것이 나쁜 습관입니까?

분류에서Dev

PostgreSQL 데이터베이스에 특정 시간대를 설정하는 것은 나쁜 습관입니까?

분류에서Dev

원격 지점에서 병합하는 것이 나쁜 습관입니까?

분류에서Dev

pydantic 모델에 비 검증 방법을 포함하는 것은 나쁜 습관입니까?

분류에서Dev

Python에서 비공개 메서드와 함수를 사용하지 않는 것이 나쁜 습관입니까?

분류에서Dev

HTML 요소의 ID에 정보를 저장하는 것은 나쁜 습관입니까?

분류에서Dev

Vuex의 다른 작업에서 작업을 호출하는 것은 나쁜 습관입니까?

분류에서Dev

__construct에서 직접 속성을 설정하는 것은 나쁜 습관입니까?

분류에서Dev

쉘 프로그램에서 system ()을 호출하는 것은 나쁜 습관입니까?

분류에서Dev

JS 함수에서 많은 HTML을 호출하는 것이 나쁜 습관입니까?

분류에서Dev

단위 테스트에서 최대 절전 모드 엔터티를 사용하는 것은 나쁜 습관입니까?

분류에서Dev

도우미에서 인스턴스 변수를 사용하는 것이 나쁜 습관입니까?

분류에서Dev

보기에서 파일을 읽는 것이 나쁜 습관입니까?

분류에서Dev

컨트롤러에서 각도로 즉석에서 양식을 만드는 것은 나쁜 습관입니까?

분류에서Dev

도커 컨테이너 내부에서 RVM과 같은 버전 관리자를 사용하는 것이 나쁜 습관입니까?

분류에서Dev

스레드를 참조하여 전달하는 것이 나쁜 습관입니까?

분류에서Dev

저장소 나 엔티티 안에 심포니 컨테이너를 넣는 것이 좋은 습관입니까, 나쁜 습관입니까?

분류에서Dev

자바 스크립트에서 재정의 변수를 사용하는 것이 나쁜 습관입니까?

분류에서Dev

많은 DataInputStreams를 덤핑하는 것이 나쁜 습관입니까?

분류에서Dev

JS에서 매개 변수로 "문자열"또는 부울을 전달하는 것이 나쁜 습관입니까?

분류에서Dev

메서드 / 함수 호출 내에서 개체를 인수로 인스턴스화하는 것은 나쁜 습관입니까?

Related 관련 기사

  1. 1

    $ scope를 서비스에 전달하는 것이 나쁜 습관입니까?

  2. 2

    행동에 기호를 사용하는 것은 왜 나쁜 습관입니까?

  3. 3

    $ emit 및 $ broadcast를 사용하여 지시문, 컨트롤러 및 서비스간에 데이터를 전달하는 것이 나쁜 습관입니까?

  4. 4

    0.0.0.0에서 듣는 것이 나쁜 습관입니까? 왜?

  5. 5

    JUnit 테스트에서 모든 예외를 던지는 것은 나쁜 습관입니까?

  6. 6

    클래스 네임 스페이스에 다른 개체를 배치하는 것은 나쁜 습관입니까?

  7. 7

    Activity의 인스턴스를 매개 변수로 전달하고 다른 클래스에서 finish ()하는 것이 나쁜 습관입니까?

  8. 8

    github에서 백엔드를 노출하는 것이 나쁜 습관입니까?

  9. 9

    화면 밖에서 uiview를 시작하는 것이 나쁜 습관입니까?

  10. 10

    PostgreSQL 데이터베이스에 특정 시간대를 설정하는 것은 나쁜 습관입니까?

  11. 11

    원격 지점에서 병합하는 것이 나쁜 습관입니까?

  12. 12

    pydantic 모델에 비 검증 방법을 포함하는 것은 나쁜 습관입니까?

  13. 13

    Python에서 비공개 메서드와 함수를 사용하지 않는 것이 나쁜 습관입니까?

  14. 14

    HTML 요소의 ID에 정보를 저장하는 것은 나쁜 습관입니까?

  15. 15

    Vuex의 다른 작업에서 작업을 호출하는 것은 나쁜 습관입니까?

  16. 16

    __construct에서 직접 속성을 설정하는 것은 나쁜 습관입니까?

  17. 17

    쉘 프로그램에서 system ()을 호출하는 것은 나쁜 습관입니까?

  18. 18

    JS 함수에서 많은 HTML을 호출하는 것이 나쁜 습관입니까?

  19. 19

    단위 테스트에서 최대 절전 모드 엔터티를 사용하는 것은 나쁜 습관입니까?

  20. 20

    도우미에서 인스턴스 변수를 사용하는 것이 나쁜 습관입니까?

  21. 21

    보기에서 파일을 읽는 것이 나쁜 습관입니까?

  22. 22

    컨트롤러에서 각도로 즉석에서 양식을 만드는 것은 나쁜 습관입니까?

  23. 23

    도커 컨테이너 내부에서 RVM과 같은 버전 관리자를 사용하는 것이 나쁜 습관입니까?

  24. 24

    스레드를 참조하여 전달하는 것이 나쁜 습관입니까?

  25. 25

    저장소 나 엔티티 안에 심포니 컨테이너를 넣는 것이 좋은 습관입니까, 나쁜 습관입니까?

  26. 26

    자바 스크립트에서 재정의 변수를 사용하는 것이 나쁜 습관입니까?

  27. 27

    많은 DataInputStreams를 덤핑하는 것이 나쁜 습관입니까?

  28. 28

    JS에서 매개 변수로 "문자열"또는 부울을 전달하는 것이 나쁜 습관입니까?

  29. 29

    메서드 / 함수 호출 내에서 개체를 인수로 인스턴스화하는 것은 나쁜 습관입니까?

뜨겁다태그

보관