2017-01-24 6 views
2

Ich versuche, eine redirectAction zu einer anderen Klasse zu tun und eine bestimmte Methode in dieser Klasse aufzurufen.
Grundsätzlich, wenn der Benutzer eine "Bearbeiten" -Link in einer Zelle in einer Tabelle trifft, erhalten wir das Objekt und setzen es in die Sitzung und rufen Sie dann die Editor-Klasse, Aufruf der Methode, die das Objekt aus der Sitzung abruft so kann im Editor angezeigt werden.Upgrade von Struts2 2.1 auf 2.5

So haben meine Vorgänger das System schon vor langer Zeit geschrieben, und ich würde lieber so wenig strukturelle Änderungen wie möglich vornehmen.

Upgrade auf 2,5 bricht all das.
Wir haben es bis auf den method Parameter verengt:

<result name="editSingle" type="redirectAction"> 
    <param name="actionName">productEdit</param> 
    <param name="method">getFromSession</param> 
</result> 

Wenn wir dies ausführen, erhalten wir die

"Es gibt keine Aktion zugeordnet ist ..."

Nachricht .
Wenn wir die <param name="method"> Zeile auskommentieren, schlägt es nicht mehr fehl, aber offensichtlich kommt es nie zu der Methode, die wir nicht mehr spezifizieren. Die Dokumente für die redirectAction Liste ein paar Parameter, aber method ist nicht unter ihnen. Also meine Fragen, ich denke, sind zweifach:

1) Wurde das wirklich irgendwo in der 2,1 -> 2,5 Migrationsreise entfernt?

2) Wie gehen Menschen mit dieser Entfernung um? Wir können nicht die einzigen sein, die darauf gestoßen sind.

+0

Es kann sein [this] (issues.apache.org/jira/browse/WW-4540), zB https://cwiki.apache.org/confluence/display/WW/Action+Configuration#ActionConfiguration-StrictMethodInvocation . Probieren Sie das aus und sehen Sie, ob das Problem behoben ist - mir ist nicht klar, ob diese Arbeit XML-definierte Methoden enthält. –

+0

@DaveNewton, danke für den Vorschlag, aber es ist nicht die Lösung. Ich habe die Methode in hinzugefügt, aber das Ergebnis war das gleiche. In den Docs gibt die redirectAction-Seite an, dass folgende Parameter verwendet werden: actionName, namespace, suppressEmptyParameters, parse, anchor. Es gibt keine Erwähnung von "Methode", daher vermute ich, dass ich überhaupt keine Methode angeben kann. – Tom

Antwort