2010-12-11 3 views
2

Im은 JSF를 사용하여 이전에, 그리고 나는 모델의 개념이 정말로 거기에서 중요하다는 것을 안다. 여기, struts2에서, 나는이 개념이 다소 쓸모 없다는 것을 안다. 예를 들어, 범위가 제한된 Bean 세션을 설정하는 것은 불가능한 것 같습니다. 대신 전체 Bean (객체)을 세션에 넣어야합니다 (수동).Struts2 - 이것은 "MVC"프레임 워크를위한 훌륭한 전략입니까?

그래서 일부 방법에서는 좋지 않습니다. 예를 들어, 페이지 스위치, 내가 (JSP 페이지) 구현이 :

<s:div cssClass="content" id="content"> 
<% 
    String pageValue=request.getParameter("page"); 
    if((pageValue!=null) && (pageValue.compareTo("articles")==0)) { 
     %> 
      <s:include value="articles/articles.jsp"></s:include> 
     <% 
    } else { 
     %> 
      <s:include value="homepage/homepage.jsp"></s:include> 
     <% 
    } 
%> 
</s:div> 

이 Struts2 함께 일할 수있는 올바른 방법인가? 아니면 Bean에 값을 넣고 Beans 값에 따라 페이지를 생성하는 것이 더 낫습니다. (모델 개념,하지만 난 콩 범위를 설정하는 뜨거운 모르겠다, 나는 세션에 넣어 못해. 그 이외의 절차 코딩, 그리고 이렇게 할 수 PHP :)).

나는 :) 그렇지 않으면 어떻게 해야할지

건배하지 마십시오

+0

MVC 프레임 워크에서 scritplet를 사용하면 안됩니다. struts2 –

답변

1

방법은 여러 가지가

1) Struts는 너무 스프링을 사용하여, DI를 위해 스프링을 사용하여 ... 있습니다 이 목적은 struts2-spring-plugin을 살펴보기

2) 이전 질문에서 언급 한대로 SessionAware를 사용할 수 있습니다. 그러나 세션 스코프 된 객체는 본질적으로 크로스 커팅 문제이므로 인터셉터는 함께 작동한다고 언급했습니다. 인터셉터가 없으면 해결책은 당신의 행동에 존재하도록 강요되거나 뷰 레이어를 악화시킬 것입니다. 반복해서 반복하면 ... "좋지 않습니다".

3) MVC 지향 모델이 강력하면 modelDriven 및 scopedModelDriven을 살펴보십시오. 나중에 모델이 존재하지 않으면 세션 스코프 (다른 범위가 가능합니다)에있을 수있는 작업에 대한 모델을 설정합니다. 그러면이 인스턴스가 인스턴스화됩니다 ... 이는 다중 페이지 양식, 양식은이 개체를 제거 할 수 있습니다. 나는 모델을 좋아하지 않는다. 행동에 대한 접근을 복잡하게 만들 수있다.

+0

+1 to Quaternion –

+1

실제로 Struts2는 DI에 XWork를 사용하지만 Spring이나 Guice를 사용하기위한 플러그인이 있습니다. –

+0

하지만 왜 봄? 나는 봄을 사용하고 싶지 않다. 봄은 또 다른 틀입니다. 명확한 Struts2 애플리케이션으로 어떻게 할 수 있습니까? – markzzz