2017-03-13 2 views
0

Ich bin ein Neuling, der versucht, eine Anwendung von Struts1 nach Struts2 zu migrieren. Im Migrationsprozess stehe ich vor den folgenden Problemen: -Migration von Struts1 auf Struts2, Aktion in Struts1 in Struts2 umwandeln

1) Es gibt ein Servlet, das ActionServlet von Struts1 erweitert. Es gibt viele überschriebene Methoden, bei denen Super wie process aufgerufen wird, würde ich gerne wissen, wie es zu Struts2 konvertieren. Da ich in StrutsPrepareAndExecuteFilter nicht die Entsprechung erhalte.

2) Ich habe alle Form-Beans in Modell Driven Beans und alle Aktionen in eine Klasse umgewandelt, die ActionSupport erweitert. Auch Eintrag in struts.xml dafür gemacht.

Bitte geben Sie Ihre Kommentare zu den beiden oben genannten Punkten.

Antwort

1

Die process wird ausgeführt, bevor die Aktion ausgeführt wird. Der Zweck des Überschreibens der Framework-Klassen ist das Ändern/Erweitern der Funktionalität. Die meisten Änderungen beziehen sich auf das alte Framework und können gelöscht werden. Wenn Sie Code verwenden müssen, der in Struts2 nicht ersetzt werden kann, sollten Sie einen benutzerdefinierten Interceptor schreiben. Dies ist eine normale Methode zum Ändern/Erweitern der Funktionalität in Struts2 anstelle von Klassenüberschreibungen.

Sie können mehr über interceptors auf der Struts Docs-Website lesen.

Sie sollten mit Ihrer Architektur in Ordnung sein, aber ModelDriven könnte mit injizierenden Bohnen in Controller ersetzt werden. Siehe Nullpointerexception while setting a bean.

Manchmal ist der Geltungsbereich der Bean wichtig, z. B. verwendet Struts1 standardmäßig einen Sitzungsumfang. Sie können eine sessionMap mit der Interzeptor-Ameise injizieren, halten Sie Ihre Objekte in der Sitzung, wenn Sie sie brauchen, oder versuchen Sie, eine Session-Bean zu implementieren, wie ich es in this Frage getan habe.

+0

Danke für die Hilfe Roman! – Test

Verwandte Themen