2010-12-11 4 views
2

Ich benutze JSF Zeit vor, und ich sehe, dass das Konzept von MODEL dort wirklich wichtig ist. Hier, auf struts2, sehe ich, dass dieses Konzept etwas veraltet ist. Zum Beispiel scheint es unmöglich zu sein, einen Bean-Session-Bereich zu setzen; Stattdessen muss ich das gesamte Bean (Objekt) in die Sitzung einfügen (manuell).Struts2 - Ist das eine großartige Strategie für ein "MVC" Framework?

Also, in einigen Methoden ist das nicht nett. Zum Beispiel für den Seitenschalter, i (auf JSP-Seite) implementiert habe dies:

<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> 

ist dies der richtige Weg mit Struts2 zu arbeiten? Oder ist es besser, einige Werte in Beans zu setzen und die Seite entsprechend den Beans-Werten zu erzeugen? (Modell-Konzept, aber ich weiß wirklich nicht heiß, um den Bean-Bereich zu setzen, und ich werde sie nicht auf Sitzung setzen. Sonst ist wie procedual Codierung, und ich kann PHP verwenden, um dies zu tun :)).

Ich weiß nicht, wie es sonst zu tun :)

Prost

+0

Sie sollten nicht verwenden Scriplet in MVC Framework z. struts2 –

Antwort

1

Es gibt mehrere Möglichkeiten ...

1) Struts verwendet Feder für DI, auch Sie Feder verwenden können Dieser Zweck in die Struts2-Spring-Plugin

2) Sie können SessionAware wie ich in einer früheren Frage erwähnt verwenden. Ich habe jedoch erwähnt, dass Interceptors zusammen arbeiten, da Objekte, die auf die Session ausgerichtet sind, ihrer Natur nach cross-cutting sind. Ohne die Abfangjäger wird eine Lösung gezwungen sein, in Ihren Aktionen zu existieren oder schlimmer noch die Ansichtsschicht ... die sich immer wieder wiederholt ... was Sie als "nicht nett" bezeichnen.

3) Wenn Sie stark MVC-orientiert sind, schauen Sie in modelDriven und scopedModelDriven. Letzteres wird ein Modell für Ihre Aktion festlegen, das im Sitzungsumfang sein kann (andere Bereiche sind möglich), wenn das Modell nicht existiert, dann wird es für Sie instanziiert ... Dies ist gut für mehrseitige Formulare, die erfolgreiche Ausführung von Das Formular kann dieses Objekt dann entfernen. Ich mag nicht wirklich ModelDriven kann den Zugriff auf die Aktion erschweren.

+0

+1 zu Quaternion –

+1

Tatsächlich verwendet Struts2 XWork für DI, aber es gibt Plug-Ins für die Verwendung von Spring oder Guice. –

+0

Aber warum Frühling? Ich möchte den Frühling nicht benutzen. Frühling, es ist ein anderer Rahmen, nicht wahr? Wie kann ich es mit einer klaren Struts2-Anwendung machen? – markzzz

Verwandte Themen