2009-11-30 2 views
2

J'ai du mal à appeler une méthode dans une action Struts à partir d'une méthode dans une autre action Struts (on m'a dit que c'est possible).Struts 1.2.9 Chaînage d'actions

Je travaille avec deux Struts DynaValidatorForms - l'un est utilisé pour créer une entrée, l'autre est utilisé uniquement pour afficher l'action (plus l'édition, la suppression, etc.).

J'ai deux fichiers d'action Struts séparés: CreateAction.java (qui a la méthode create()) et ViewAndEditAction.java (qui contient les méthodes view() et edit()).

Ce que je voudrais faire est d'appeler la méthode view() dans la dernière action après que la méthode create() dans l'action précédente soit terminée.

J'ai regardé dans le chaînage d'action mais n'ai pas été capable de trouver une solution à mon problème.

Répondre

1

Vous devez créer un renvoi à l'action suivante dans la première action. Puis retournez l'avant approprié. Dans la config ci-dessous, si vous renvoyez "success" dans l'action Create, alors il va à la méthode view de l'action suivante.

<action 
path="/create" 
type="package.CreateAction" 
name="YourForm" 
scope="request" 
validate="false"> 
<forward 
    name="failure" 
    path="/mainMenu.jsp"/> 
<forward 
    name="success" 
    path="/view.do" redirect="false"/> 
</action> 

<action 
path="/view" 
type="package.ViewAndEditAction" 
name="YourForm" 
scope="request" 
validate="false"> 
<forward 
    name="failure" 
    path="/mainMenu.jsp"/> 
<forward 
    name="success" 
    path="/view.jsp"/> 
</action> 
+0

Merci de m'avoir répondu si vite Vincent. C'est ce que j'ai essayé de faire, mais cela s'est avéré infructueux - comment Struts sait-il quelle méthode utiliser dans ViewAndEditAction après le forward? Aussi est-il correct que j'utilise un DynaValidatorForm différent entre les deux actions? Merci. – Ger

+0

Je soupçonne que l'utilisation d'une forme différente entre les actions peut être problématique et c'est là que vous obtenez votre problème. Vous pouvez spécifier le nom de la méthode dans la configuration de l'action, ce qui devrait résoudre l'autre problème. –

+0

Ah je vois, donc mon avant sera quelque chose comme "/view.do?method=getRecord". Merci beaucoup Vincent. – Ger