Bonjour, je débute avec Struts et y a quelque chose qui me chifonne sérieusement : je ne comprends pas l'ordre d'appel des méthodes des Action et ActionForm.
Mon problème est simple : c'est un petit système de blog, un utilisateur peut poster un commentaire à un message.
J'ai donc déclaré PostCommentAction et PostCommentForm
Le problème c'est que l'ordre d'appel des méthodes est :
Et la la vue est affichée à l'écran...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 PostCommentForm.reset() PostCommentForm.validate() PostCommentAction.execute()
Quel intérêt que validate soit appellé avant execute ? Et surtout que validate() soit appellé lors de l'affichage du formulaire (et pas en réponse à l'utilisateur) ?
Bizarre, voici l'action correspondante telle que je l'ai définie :
Je ne comprends pas le forward "success", dans l'exemple ci dessus. Moi je me disais qu'il faudrait que path pointe vers l'index du site, pas vers le formulaire ? Dans l'idée "si la validation se passe bien on forward sinon on revient à comment.ftl grâce au paramètre input"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <!-- Poster un commentaire --> <action path="/site/postcomment" type="site.actions.PostCommentAction" name="PostCommentForm" input="/site/comment.ftl" scope="request" validate="true"> <forward name="success" path="/site/comment.ftl"/> </action>
Est-que quelqu'un peut m'aider ? J'y ai passé des heures...
Merci d'avance
Partager