Wir erweitern ein altes Struts 1-Projekt, um es mit Spring zu managen - dennoch möchten wir den Code und den Ablauf so wenig wie möglich ändern. Wir haben uns daher entschieden, Struts die Verwaltung der Anfragen zu überlassen und die Aktionen über die org.springframework.web.struts.DelegatingActionProxy
Klasse.
Beispiel:
Die Datei struts-config.xml enthält:
<action name="InvalidSession"
path="/pages/InvalidSession"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request">
<forward name="success" path="/pages/Startup.do" />
</action>
Die Datei action-servlet.xml enthält:
<bean name="/pages/InvalidSession"
class="com.xxx.actions.InvalidSessionAction" />
Jetzt wird die Sache komplizierter :
Normale Spring Beans wurden in der applicationContext.xml definiert. Ein Beispiel:
<bean id="parserUtils" class="com.xxx.el.parser.ParserUtils" >
<property name="parserFactory" ref="parserFactory"/>
</bean>
Ich möchte nun (nicht automatisch - aber das ist kein Problem) die parserUtils
Bohne an eine ActionForm .
Hätte ich es mit einem Aktion Ich würde einfach das Folgende in der action-servlet.xml definieren:
<bean name="/pages/CaseUpdate"
class="com.xxx.actions.CaseUpdateAction" >
<property name="parserUtils" ref="parserUtils" />
</bean>
wobei in der struts-config.xml folgendes steht:
<action path="/pages/CaseUpdate"
name="CaseUpdateForm"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request">
<forward name="success" path="/pages/SwitchView.do" />
</action>
Die stuts-config enthält aber auch Folgendes ActionForm Definition:
<form-bean name="CaseUpdateForm"
type="com.xxx.forms.CaseUpdateForm" />
und ich möchte die parserUtils
Bean an die Klasse CaseUpdateForm.
Was muss ich tun?
Vielen Dank an alle!