2013-07-03 4 views

답변

7

Struts2 Interview Questions and Answers

따르면 Struts2 모든 데이터 값의 스택에 저장되고 렌더링보기 층에 의해 검색하는 풀 - MVC 기반 구조이다.

구체적 : 푸시 MVC 데이터 (모델)의 경우

가 구성 및 범위 변수에 넣어 같은 요청 또는 세션으로 제어기에 의해 뷰 층에 주어진다

. 전형적인 예제는 Spring MVC와 Struts1입니다. 반면에 Pull-MVC는 일반적으로 컨트롤러에서 구성된 모델 데이터를 일반적인 위치, 즉 이 뷰 레이어에서 렌더링되는 동작으로 유지됩니다.

+5

답변은 단지 복사하여 붙여 넣기 만하면됩니다. *** http://www.bullraider.com/java/struts2/interview-questions –

+1

여기에서 더 많은 http : //를 찾을 수 있습니다. www.guyrutenberg.com/2008/04/26/pull-vs-push-mvc-architecture/ –

3

푸시 앤 풀이라는 개념은 서버가 클라이언트와 관련하여 수행하는 작업을 나타냅니다. "푸시 (push)"응용 프로그램에서 서버는 자신의 시작으로 클라이언트에 데이터를 보내거나 보내고 있습니다. "pull"응용 프로그램에서 서버는 클라이언트가 시작한 메시지를 기다리거나 기다리는 중입니다.

은 좋은 설명은 여기 mvc-pattern-its-importance-push-pull 여기 pull-vs-push-mvc-architecture

Struts1 모두 사용이 MVC를 밀어 봄이 부여됩니다. 이 질문은 모든 프레임 워크 모두 같은

이 [프론트 컨트롤러를 사용하여 .. 도움이 spring-mvc-complex-model-population-from-multiple-sources Struts2는

+2

죄송하지만 전 세계적인 웹은 그 반대입니다. 스프링 MVC는 PUSH, Struts1은 PUSH입니다. ** Struts2는 PULL입니다. ** ... –

+0

감사합니다! - struts1에 대해 이야기하고 있었다 .. - 편집 됨 – Tala

+0

MVC Push와 Pull 사이에 어느 것이 더 낫다. –

-1

미안 .. 내가 스트럿 1, MVC는 PUSH MVC로 간주 될 수있다 2, 스프링 스트럿 생각하지 말아 당겨 사용 수 있습니다 Struts의 Filer 클래스, Spring의 Controller Listener]를 각각의 배치 디스크립터에 정의했다. 이제이 두 프레임 작업 모두 리플렉션을 통해 해당 컨트롤러를 사용하는 각각의 bean [또는 model] 객체에 양식 데이터를 저장합니다.

이제 우리의 Action Controller에서 값을 얻을 수 있지만 bean 객체 나 모델이 실제로 생성 된 앞쪽 컨트롤러에서 request.getParameter (param)를 사용하여 resperctive 필드의 값을 설정합니다.) 또는 request.getParameterValues ​​(param) 메소드를 내부적으로 호출 할 수 있습니다. 따라서 이것은 PULL로 간주 될 수 있습니다.

내 생각에 따라이 프레임 워크는 엔드 프로그래머가 사용하는 PULL 레이어와 프레임 워크 기본 클래스가 사용하는 PUSH 레이어의 두 레이어를 사용할 수 있다고 말할 수 있습니다.

2

Struts2, Play! 등등 모든 종류의 모델을 당겨 MVC 패턴의 구현입니다.

약관 "푸시"와보기와 모델 사이에 사용 관찰자 패턴의 구현의 종류를 직접 참조 "이 풀".GoF의 옵저버 패턴 explaination에 명시된 바와 같이, 우리는이 :

우리가 푸시 모델는, 피사체가 그들이 원하는 여부, 변경에 대한 관찰자에게 상세한 정보를 전송 전화 극단적 인 하나에서. 다른 극단에서는 풀 모델; 주체는 가장 최소한의 통지만을 보내고, 관찰자는 그 이후에 명시 적으로 세부 사항을 요구한다.

푸시 모델의 구현보기와 모델 같은 언어를 사용하여 구현하고는 동일한 환경에서 실행해야합니다 것을 의미한다. 이러한 종류의 구현의 좋은 예가 자바 스크립트 단일 페이지 응용 프로그램입니다.보기 및 모델 구성 요소가 브라우저 내부에서 실행되고 프레임 워크, 즉 Backbone은 MVC (관찰 관인) 메커니즘을 제공합니다. 모델 구성 요소는 일종의 서버 API와 상호 작용하여 지속성있는 데이터를 유지하고 가져 오는 경우가 많습니다.

반면에 풀 모델을 사용하면 View 구성 요소와 컨트롤러/모델 구성 요소에 대해 서로 다른 기술을 사용하여 MVC를 구현할 수 있습니다. 이런 종류의 MVC에서는 Observer 패턴을 명시 적으로 사용하지 않으며 View는 Controller와 독점적으로 상호 작용합니다. 일반적으로 브라우저로 실행되는 View 구성 요소는 Controller 구성 요소로 모델 업데이트 또는 모델 상태 요청을 보냅니다. 일반적으로 요청은 HTTP 프로토콜을 사용하여 구현됩니다. 이러한 종류의 구현에는 View와 Controller 간의 링크를 자동으로 만들 수있는 JSP와 같은 일부 형식의 " HTML 스크립트 언어"가 필요합니다.

+0

Spring MVC는 pull model이 아닙니다. –

+0

@AleksandrM, 네 말이 맞아. 스프링이 푸시 모델의 구현이라고 말하는 많은 자료를 찾았습니다. 나는 항상 Spring MVC가 pull 모델을 구현한다고 믿어왔다. 푸시 모델에서 뷰는 모델을 관찰하지만 JSP를 사용하여 어떻게 가능합니까?! 어쨌든, 나는 정답을 가지고있다. –

+0

@AleksandrM 알았어. 당신의 정의는이 토론에서 말한 것을 따른다. [J2EE 패턴 : MVC Pull과 MVC Push에 대한 설명] (http://www.theserverside.com/discussions/thread.tss?thread_id=22143). 나는 그에 따라 내 대답을 최대한 빨리 업데이트 할 것이다 :) –