Foros de discusión

Forward bei Hook für Struts Action funktioniert nicht

kunibert günter, modificado hace 9 años.

Forward bei Hook für Struts Action funktioniert nicht

New Member Mensajes: 18 Fecha de incorporación: 5/07/14 Mensajes recientes
Hallo,

ich versuche mit einem Hook die Action von der edit_file_entry.jsp zu erweitern, um meine eigene Dateiverarbeitung zu realisieren.

Dazu benutze ich einen Hook:


<struts-action>
        <struts-action-path>/document_library/edit_file_entry</struts-action-path>
        <struts-action-impl>de.test.sample.DetailUpload</struts-action-impl>
</struts-action>




public class DetailUpload extends BaseStrutsPortletAction implements StrutsPortletAction {

	@Override
	public void processAction(StrutsPortletAction originalStrutsPortletAction,
			PortletConfig portletConfig, ActionRequest actionRequest,
			ActionResponse actionResponse) throws Exception {

               try {
                     //some code here
               } catch (DuplicateFileException e) {
                   SessionErrors.add(actionRequest, e.getClass().getName());
              }

		originalStrutsPortletAction.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);

        }

}

//render and serveResource methods


Wenn ich keinen Hook habe und eine Datei hochlade, dessen Dateiname bereits vorhanden ist, wird der Fehler innerhalb der edit_file_entry.jsp angezeigt:



Nutze ich jedoch den Hook, lande ich immer auf der "Startseite" also view_entries des Dokumenten und Medien Portlets wo mir nur angezeigt wird, dass ein Fehler auftrat:



Wenn ich das richtig sehe, nutzt die EditFileEntryAction Methoden wie setForward() um bei einer Exception richig umzuleiten, die steht mir aber bei dem Hook nicht zur Verfügung...

Hat jemand eine Idee, wie ich mein Vorhaben implementieren könnte?
thumbnail
Jan Geißler, modificado hace 9 años.

RE: Forward bei Hook für Struts Action funktioniert nicht

Liferay Master Mensajes: 735 Fecha de incorporación: 5/07/11 Mensajes recientes
Ich würde mir mal die Original Struts Action anschauen, ob da irgendwo was drin steht was mir einen Anhaltspunkt gibt wie sie die Weiterleitung realisieren. Eventuell findest du da ja Anhaltspunkte. Ich hatte auch schon mal ne Struts Action überschrieben für den Login Prozess meine ich. Da hatte ich glaube ich erst die Original Struts Action gefeuert und und das in nem Try Catch um zu schauen ob was schief geht, wenn es schief geht einfach keine weitere Abarbeitung machen und die Exception weiter hoch reichen. Irgendwie sowas...

Gruß
Jan
kunibert günter, modificado hace 9 años.

RE: Forward bei Hook für Struts Action funktioniert nicht

New Member Mensajes: 18 Fecha de incorporación: 5/07/14 Mensajes recientes
Hallo Jan,

danke für die Antwort, habe das Problem glücklicherweise gelöst, mein Fehler war diese Zeile:


originalStrutsPortletAction.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);


Es muss so lauten:


super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);


Der Artikel der mich auf diese Lösung brachte für den Fall das jemand das selbe Problem hat:

https://www.liferay.com/de/community/wiki/-/wiki/Main/Struts+Action+Hook+Tips