2009-05-10 9 views
0

Was ist der beste Ansatz zum Festlegen der Servlet-Kontextvariablen in Struts? Diese Variable wird auf jeder einzelnen Seite in der Kopfzeile angezeigt und muss aus der DB geladen werden. Zu diesem Zweck gibt es Hibernate DAO und Spring Service, die den angeforderten Wert zurückgeben.Festlegen der globalen Variable in Struts mit Spring

Mein aktueller Ansatz war es, Struts PlugIn-Klasse zu erweitern und meinen Dienst hinein zu injizieren. Dies ist nicht direkt in Struts möglich, aber ich habe eine Seite gefunden (http://opensource.atlassian.com/confluence/spring/display/DISC/Spring-enabling+Struts+PlugIns), wo Ulrik Sandberg einen Proxy erstellt, der solche Funktionalität erlaubt. Dies funktioniert, wenn ich meine Anwendung ausliefern lasse, aber JUnits irgendwo in der Datei servletunit.struts.MockStrutsTestCase.getActionServlet (MockStrutsTestCase.java:331) auf java.lang.NullPointerException fehlschlägt.

Gibt es einen anderen Ansatz, den ich nehmen kann, der nicht das Debuggen von jemand anderen Klassen einschließt?

Antwort

0

Sehen Sie sich die Referenzanleitung für die Feder und den Abschnitt (3.4) zu den Bean-Scopes an. Sie können eine Bean haben, die über die gesamte Lebensdauer der Browsersitzung hinweg verwaltet wird, und sie als Proxy-Session-Bean einrichten.

<!-- a HTTP Session-scoped bean exposed as a proxy --> 
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session"> 

     <!-- this next element effects the proxying of the surrounding bean --> 
     <aop:scoped-proxy /> 
</bean> 

Das ist aus Abschnitt 3.4.4.5.