Bonjour,
J'ai un formulaire avec plusieurs actions.
Maintenant, je souhaiterais à l'intérieur des ActionForward faire un lien vers une méthode d'une autre action genre un new Action() et appeller la méthode execute.
Est ce possible ?
Merci,
Bonjour,
J'ai un formulaire avec plusieurs actions.
Maintenant, je souhaiterais à l'intérieur des ActionForward faire un lien vers une méthode d'une autre action genre un new Action() et appeller la méthode execute.
Est ce possible ?
Merci,
il y a plus de methode execute avec le LookupDispatchAction. Il y a un exemple ds la FAQ de la procedure a suivre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public class testAction extends LookupDispatchAction { /** * Action dispatcher. * Associe la methode Action à executer par rapport au boutton correspondant à l'appel */ protected Map getKeyMethodMap() { Map map = new HashMap(); map.put("button.submit", "add"); map.put("button.cancel", "cancel"); return map; } /** * Unspecified action. Action par défaut */ public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { System.out.println("unspecified"); return null; } /** * Method add. Appelé sur "submit" du formulaire * * @param ActionMapping mapping * @param ActionForm form * @param HttpServletRequest request * @param HttpServletResponse response * @return ActionForward * @throws IOException * @throws ServletException */ public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { System.out.println("ADD"); return null; } /** * Method cancel. Appelé sur "cancel" du formulaire * * @param ActionMapping mapping * @param ActionForm form * @param HttpServletRequest request * @param HttpServletResponse response * @return ActionForward * @throws IOException * @throws ServletException */ public ActionForward cancel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { System.out.println("CANCEL"); return null; } }
oui c'est ce que j'utilise actuellement, mais pour un codage plus clair, je voudrais que externaliser le code des ActionForward.
Je vais essayer d'être plus clair en montrant un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public ActionForward add( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ICI, Je voudrais faire un lien vers la méthode execute d'une autre classe Action (un autre fichier .java) }
Cela me permettrait donc d'externaliser le code des actionForward dans des Actions normales, facilitant ainsi ma lisibilité.
Rien ne t'empeche de travailler sur d'autre objet java ... je comprends pas ton pb
bah, je débute donc si ca se trouve tu ne comprends pas car c'est un truc tout bête ^^
En fait, imaginons que tout le code qu'il y a a mettre dans l'ActionForward soit déjà définit dans la méthode execute d'une autre Action, dans ce cas, au lieu de réimplémenter le tout, il faut appeller la méthode de cette action. Et c'est ca que je ne sais pas faire.
j'espere avoir été clair cette fois ci xD
Tu veux savoir si on peut faire un truc du style :
Je ne vois pas l'interet mais ça doit être possible mais je ne sais pas si c'est "politiquement correct"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public ActionForward add( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { Action myAction = new Action(); return myAction.execute() }![]()
Comme te l'a montré nad c'est possible mais j'ai du mal a voir l'interet car dans le cas present ca fait du decoupage de code qui n'est pas fonctionnellement justifié (ca n'apporte pas grand chose) mais oui tu peux, pense juste a passer tous les paramètres sinon ton action va etre limitée![]()
j'ai 4 boutons qui déclenchent des actions différentes dans mon formulaire.
Cela est beaucoup plus clair si les 4actions sont dans des fichiers a part.
Et enfin, si je souhaite réutiliser ces actions dans d'autres formulaire cela m'évite de faire des c/c de code, no?
Je dis peut etre des betises ? ^^
Partager