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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 PostCommentForm.reset() 
PostCommentForm.validate()
PostCommentAction.execute()
Et la la vue est affichée à l'écran...

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 :

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>
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"

Est-que quelqu'un peut m'aider ? J'y ai passé des heures...

Merci d'avance