2016-12-16 3 views
1

Struts2를 처음 사용했습니다.Struts 2.3 : Action Beans의 범위 변경

Struts 문서에서 빈의 범위에 대한 정보를 찾을 수 없으며 Struts는 기본적으로 요청 범위를 사용합니다. 이는 내 프로젝트에 적합하지 않습니다.

Struts1에서 범위 사용에 대한 많은 정보를 찾았지만 문서에 대한 모든 링크를 사용할 수 없습니다.

조치 클래스의 범위를 설정하는 방법을 제안 해주십시오.

+0

범위에 대한 자세한 내용은 [여기] (http://stackoverflow.com/a/27670618/573032) –

+0

[This (http://stackoverflow.com/a/20458850/573032) 범위지만 (upvoted되지 않음). 답장에 관해서 * Struts는 기본적으로 요청 범위를 사용합니다 *. –

답변

1

스트럿츠 프런트 엔드 MVC 프레임 워크입니다.

Struts2 작업은 컨트롤러 (MVC의 C)이므로 Bean으로 사용해서는 안됩니다. 대신 bean을 기본 비즈니스 계층에서 뷰 (MVC의 V, 예 : JSP)로 가져와야합니다.

50 개의 속성이있는 작업을해서는 안되며, 두 개의 속성이있는 50 개의 속성이있는 POJO 인 액션이 있어야합니다.

Struts2 뒤에는 Java EE (EJB 3, JPA 2, CDI 등)와 같은 모든 Bean과 범위 또는 Spring 또는 기타 등 비즈니스 계층에서 실행중인 것을 가질 수 있습니다.

Struts2 작업은 요청에 대해 스레드로부터 안전하고 인스턴스화 된 방식으로 작동하는 방식입니다. 행동 범위를 변경하여 콩으로 사용하거나, 행동이 무엇인지, 어떻게 사용해야하는지 배우려고 시도하지 마십시오.

Sidenote : 선택의 여지가 없다면 Struts2 + Java EE 이상 == + Struts2-CDI-plugin + Struts2-Convention-plugin + Struts2-Json-plugin을 Maven과 함께 실행하고 Maven 아키 타입.

+0

답변 해 주셔서 감사합니다. 나는 프로젝트에서 Struts2 + EJB3를 가지고 있으며, 초기화하고 화면에서 사용하기 위해 db로부터 일부 데이터를로드해야한다. 이 작업은 너무 비싸기 때문에 각 요청마다이 작업을 수행 할 수 없습니다. 현재 세션 데이터를 저장하는 데 세션을 사용합니다.하지만 이것은 매우 나쁜 습관입니다 ... 제안 사항, 요청간에 데이터를 저장하는 방법은 무엇입니까? 나는 사용 컨트롤러를 싱글 톤 또는 스코프 세션으로 생각한다. 서블릿이나 스프링 MCU 컨트롤러와 같이 매우 좋은 생각이다. – Aventes

+0

데이터가 사용자 단위 인 경우 세션이 좋다. 데이터가 공통적 인 경우 캐시하십시오 (예 : in ejb3 @Singleton. 더 읽기 : http://stackoverflow.com/questions/26733141/load-and-cache-application-scoped-data-with-singleton-and-stateless –

+1

도움을 주셔서 감사합니다! 문제가 해결되었습니다) – Aventes

관련 문제