[SPRING] Struts2의 모든 뷰에 객체를 어떻게 노출시킬 수 있습니까?
SPRINGStruts2의 모든 뷰에 객체를 어떻게 노출시킬 수 있습니까?
Struts2와 Freemarker 템플릿 및 Spring4를 사용하는 웹 응용 프로그램이 있습니다.
모든 페이지에서 렌더링해야하는 .properties 파일에 저장되는 구성 문자열이 몇 개 있습니다 (예 : 버전 문자열이 포함 된 CDN 경로). 현재 이러한 속성은 스프링에서 읽고 org.springframework.core.env.Environment의 인스턴스에 저장됩니다.
내 모든 환경에서 내 환경 인스턴스에 액세스 할 수있는 쉬운 방법이 있습니까? 기본 클래스에 getEnvironment () 메소드가있는 조치 상속을 통해이를 수행하는 다른 애플리케이션이 있습니다. 모든 액션이 기본 클래스를 확장해야하기 때문에이 접근법을 싫어합니다.
해결법
-
==============================
1.로직을 빈 (예 : Configuration.java)에 넣은 다음 필요한 모든 조치에 스프링 DI, Java EE CDI 등을 통해 주입하고 Getter를 통해 노출하십시오.
로직을 빈 (예 : Configuration.java)에 넣은 다음 필요한 모든 조치에 스프링 DI, Java EE CDI 등을 통해 주입하고 Getter를 통해 노출하십시오.
그러나 상속 접근 방식을 과소 평가하지 않을 것입니다. 설명하는 동안 사양을 추가하여 상속 트리를 작성할 수 있기 때문에 설명하는 것만 큼 나쁘지는 않습니다. 하나의 BaseAction, 일부 Sub-BaseActions, 일부 하위 서브 ... 더 읽어보십시오.
나중에 BaseAction을 형제 관계로하여 BaseAction에 넣은 것이 필요하다는 것을 발견 한 경우, 상위 BaseAction에서 첫 번째 것까지 모두 한 레벨 위로 이동하십시오.
-
==============================
2.모든 조치를 가로채는 인터셉터를 작성하고이 인터셉터를 사용자 정의 인터셉터 스택에 추가하십시오. 이 스택은 기본 인터셉터 스택을 만들어야합니다.
모든 조치를 가로채는 인터셉터를 작성하고이 인터셉터를 사용자 정의 인터셉터 스택에 추가하십시오. 이 스택은 기본 인터셉터 스택을 만들어야합니다.
<interceptors> <interceptor name="myinterceptor" class="com.company.interceptor.MyInterceptor"/> <interceptor-stack name="customStack"> <interceptor-ref name="myinterceptor"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="customStack"/>
myinterceptor의 구현에서 애플리케이션 컨텍스트에서 Bean을 가져 와서 값 스택에 놓으십시오. 모든 JSP에서 OGNL을 사용하여 값 스택의 객체에 액세스 할 수 있습니다.
-
==============================
3.상속 솔루션이 문제에 잘 맞는다고 생각합니다. 모든 컨트롤러에는 이러한 속성이 필요하므로 가장 논리적이고 가장 좋은 방법입니다.
상속 솔루션이 문제에 잘 맞는다고 생각합니다. 모든 컨트롤러에는 이러한 속성이 필요하므로 가장 논리적이고 가장 좋은 방법입니다.
Roman과 같은 인터셉터 솔루션을 시도해 볼 수는 있지만 인터셉터는 구성하기가 약간 까다 롭고 Struts2 오류 로그는 인터셉터 내부에서 문제가 발생하고 큰 응용 프로그램이있을 때 실제로 도움이되지 않습니다. 상속과 함께 사용하는 대신 모든 작업을 시작하면서 처리 논리.
from https://stackoverflow.com/questions/35682125/how-can-i-expose-an-object-to-all-of-my-struts2-views by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring의 임베디드 H2 데이터 소스 및 DB_CLOSE_ON_EXIT (0) | 2019.08.13 |
---|---|
[SPRING] 각도 5를 통해 파일 객체를 Spring Rest 컨트롤러로 보내기 (0) | 2019.08.13 |
[SPRING] Spring 애플리케이션에서 컨테이너 시작시 편안한 엔드 포인트 기록 (0) | 2019.08.13 |
[SPRING] CSV에서 mySQL 데이터베이스로 데이터로드 Java + hibernate + spring (0) | 2019.08.13 |
[SPRING] 상수 풀에서 잘못된 바이트 태그 : 19 오류 메시지 (0) | 2019.08.13 |