2017-01-24 6 views
2

J'essaye de faire un redirectAction à une autre classe, et d'invoquer une méthode spécifique dans cette classe.
Fondamentalement, lorsque l'utilisateur frappe un lien "Modifier" dans une cellule d'une table, nous obtenons cet objet et le mettons dans la session, puis invoquons la classe Editor, appelant la méthode qui récupère cet objet de la session afin qu'il peut être affiché dans l'éditeur.Mise à niveau de Struts2 2.1 à 2.5

C'est ainsi que mes prédécesseurs ont écrit le système il y a longtemps, et je préférerais faire le moins de changements structurels possible.

Mettre à jour à 2.5 casse tout ce.
Nous avons tenté au paramètre method:

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

Quand nous courons, nous obtenons la

"Il n'y a pas d'action cartographié ..."

un message .
Lorsque nous commenterons la ligne <param name="method">, elle n'échoue plus, mais évidemment elle n'atteint jamais la méthode que nous ne spécifions plus. Les docs pour le redirectAction listent quelques paramètres, mais method n'en fait pas partie. Donc, mes questions, je suppose, sont de deux ordres:

1) Est-ce que ce vraiment faire retirer quelque part dans le 2.1 - voyage> 2.5 migration?

2) Comment les personnes manipulent-elles ce retrait? Nous ne pouvons pas être les seuls à avoir rencontré cela.

+0

Cela peut être [this] (issues.apache.org/jira/browse/WW-4540), par exemple, https://cwiki.apache.org/confluence/display/WW/Action+Configuration#ActionConfiguration-StrictMethodInvocation . Essayez cela et voyez si cela le résout - ce n'est pas clair pour moi si ce travail inclut des méthodes définies par XML. –

+0

@DaveNewton, merci pour la suggestion, mais ce n'est pas la solution. J'ai ajouté la méthode dans mais le résultat était le même. Dans Docs, la page redirectAction dit que les paramètres sont les suivants: actionName, espace de noms, suppressEmptyParameters, parse, ancre. Aucune mention de la « méthode » partout, je suppose que je ne peux pas préciser la méthode du tout. – Tom

Répondre