OVH Cloud OVH Cloud

[Struts] atteindre une ActionForm

5 réponses
Avatar
Bj
Bonjour,


J'ai une page jsp A qui lance une page JSP B en popup.
Ma jsp B travaille avec une ActionForm et une Action.
Dans ma page JSP A, je voudrais assigner certaines propriétés de mon
ActionForm B avant de lancer la jsp B.
Comment faire ? je peux passer des paramètres dans l'url,..etc mais cela
ne me plait pas trop.
Existe-t-il une syntaxe pour appeler une ActionForm dans une JSP et la
manipuler ?
Faut-il que mon Action soit en scope 'Session' ?

Merci,

Bj

5 réponses

Avatar
Jaypee
Bj wrote:
Bonjour,


J'ai une page jsp A qui lance une page JSP B en popup.
Ma jsp B travaille avec une ActionForm et une Action.
Dans ma page JSP A, je voudrais assigner certaines propriétés de mon
ActionForm B avant de lancer la jsp B.
Comment faire ? je peux passer des paramètres dans l'url,..etc mais cela
ne me plait pas trop.
Existe-t-il une syntaxe pour appeler une ActionForm dans une JSP et la
manipuler ?
Faut-il que mon Action soit en scope 'Session' ?

Merci,

Bj
Salut Bj,

La page A ne pourrait-elle pas être elle aussi controlée par une action.
Ce faisant, cette action pourrait passer plus discrètement des valeurs
dans la collection Attributs de la requête.
J-P

Avatar
Bj
La il s'agit d'un popup, donc je ne passe pas par une action pour ne pas
alourdir l'application.
par contre, cela ne répond pas à ma question :-)
comment appeler une ActionForm B (liée à une jspB et actionB) depuis une
JSP A (liée à sa propre actionFormA et actionA).
Cela serait tout de même plus élégant si on pouvait passer les
paramètres directement à une actionForm plutot que dans la request.
Ou meme si le fait de passer les parametres dans la request alimentait
(initialisait) automatiquement l'ActionForm liée à la JSP appelée.

Quelqu'un pourrait m'éclairer sur ce sujet ?

Bj


Bj wrote:

Bonjour,


J'ai une page jsp A qui lance une page JSP B en popup.
Ma jsp B travaille avec une ActionForm et une Action.
Dans ma page JSP A, je voudrais assigner certaines propriétés de mon
ActionForm B avant de lancer la jsp B.
Comment faire ? je peux passer des paramètres dans l'url,..etc mais
cela ne me plait pas trop.
Existe-t-il une syntaxe pour appeler une ActionForm dans une JSP et la
manipuler ?
Faut-il que mon Action soit en scope 'Session' ?

Merci,

Bj


Salut Bj,
La page A ne pourrait-elle pas être elle aussi controlée par une action.
Ce faisant, cette action pourrait passer plus discrètement des valeurs
dans la collection Attributs de la requête.
J-P



Avatar
Franck
Salut,

Bj wrote:
La il s'agit d'un popup, donc je ne passe pas par une action pour ne
pas alourdir l'application.


AMHA C'est une erreur, c'est un peu lourd, mais dans
une application Struts il faudrait toujours passer par une action,
Tu verras l'interet le jour ou, par exemple,
tu surchargeras le RequestProcessor

par contre, cela ne répond pas à ma question :-)
comment appeler une ActionForm B (liée à une jspB et actionB) depuis
une JSP A (liée à sa propre actionFormA et actionA).
Cela serait tout de même plus élégant si on pouvait passer les
paramètres directement à une actionForm plutot que dans la request.


Tu peux initialiser le Form dans une Action, ou même dans la
méthode reset() du Form

<action name="actionFormB" path="/forwardToFormB" validate="false"
scope="request" type="com.struts.actions.InitFormBAction">
<forward name="success" path="/jspB.jsp" redirect="false"/>
</action>

dans com.struts.actions.InitFormBAction, tu peux setter les valeurs du Form.
le validateúlse est là pour eviter d'invoquer le validator.

Ou meme si le fait de passer les parametres dans la request alimentait
(initialisait) automatiquement l'ActionForm liée à la JSP appelée.


C'est prévu, essaie ça marche :-)

Quelqu'un pourrait m'éclairer sur ce sujet ?


J'ai essayé
@+

--
Franck Lefebure
mailto:

Avatar
Jaypee
Bj wrote:
La il s'agit d'un popup, donc je ne passe pas par une action pour ne pas
alourdir l'application.
par contre, cela ne répond pas à ma question :-)
comment appeler une ActionForm B (liée à une jspB et actionB) depuis une
JSP A (liée à sa propre actionFormA et actionA).
Cela serait tout de même plus élégant si on pouvait passer les
paramètres directement à une actionForm plutot que dans la request.
Ou meme si le fait de passer les parametres dans la request alimentait
(initialisait) automatiquement l'ActionForm liée à la JSP appelée.

Quelqu'un pourrait m'éclairer sur ce sujet ?

Bj


Bj wrote:

Bonjour,


J'ai une page jsp A qui lance une page JSP B en popup.
Ma jsp B travaille avec une ActionForm et une Action.
Dans ma page JSP A, je voudrais assigner certaines propriétés de mon
ActionForm B avant de lancer la jsp B.
Comment faire ? je peux passer des paramètres dans l'url,..etc mais
cela ne me plait pas trop.
Existe-t-il une syntaxe pour appeler une ActionForm dans une JSP et
la manipuler ?
Faut-il que mon Action soit en scope 'Session' ?

Merci,

Bj



Salut Bj,
La page A ne pourrait-elle pas être elle aussi controlée par une action.
Ce faisant, cette action pourrait passer plus discrètement des valeurs
dans la collection Attributs de la requête.
J-P
Re-Salut Bj,


Voici une autre proposition. L'ActionForm est un bean comme un autre,
défini dans Struts-config.xml
Dans la jsp A, tu peux utiliser du <bean:read name="le bean de l' Action
B" property="celle que tu veux 'setter'"/>.
Après çà, j' ai p'us d'idée en rayon ...
J-P



Avatar
Jaypee
Jaypee wrote:

Bj wrote:

La il s'agit d'un popup, donc je ne passe pas par une action pour ne
pas alourdir l'application.
par contre, cela ne répond pas à ma question :-)
comment appeler une ActionForm B (liée à une jspB et actionB) depuis
une JSP A (liée à sa propre actionFormA et actionA).
Cela serait tout de même plus élégant si on pouvait passer les
paramètres directement à une actionForm plutot que dans la request.
Ou meme si le fait de passer les parametres dans la request alimentait
(initialisait) automatiquement l'ActionForm liée à la JSP appelée.

Quelqu'un pourrait m'éclairer sur ce sujet ?

Bj


Bj wrote:

Bonjour,


J'ai une page jsp A qui lance une page JSP B en popup.
Ma jsp B travaille avec une ActionForm et une Action.
Dans ma page JSP A, je voudrais assigner certaines propriétés de mon
ActionForm B avant de lancer la jsp B.
Comment faire ? je peux passer des paramètres dans l'url,..etc mais
cela ne me plait pas trop.
Existe-t-il une syntaxe pour appeler une ActionForm dans une JSP et
la manipuler ?
Faut-il que mon Action soit en scope 'Session' ?

Merci,

Bj




Salut Bj,
La page A ne pourrait-elle pas être elle aussi controlée par une action.
Ce faisant, cette action pourrait passer plus discrètement des
valeurs dans la collection Attributs de la requête.
J-P



Re-Salut Bj,
Voici une autre proposition. L'ActionForm est un bean comme un autre,
défini dans Struts-config.xml
Dans la jsp A, tu peux utiliser du <bean:read name="le bean de l' Action
B" property="celle que tu veux 'setter'"/>.
Après çà, j' ai p'us d'idée en rayon ...
J-P
Désolé, j'ai inconsciemment persisté dans l'idée d'associer une action à

la page A. car sans action pas de tag <bean:*/> possible dasn la vue ...
Mais peut-être que celà peut te convaincre de l'utilité de cette action,
même pour un pop-up.