IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[ Struts ] Formulaire : édition


Sujet :

Struts 1 Java

  1. #1
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut [ Struts ] Formulaire : édition
    Salut,

    J'ai un bean formulaire (NoteForm.java) qui étend org.apache.struts.validator.ValidatorForm.

    Dans mon fichier struts-config.xml, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    		<set-property property="pathnames" value="/WEB-INF/validator-rules.xml" />
    </plug-in>
    Dans mon fichier validator-rules.xml, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <formset>
    	<form name="noteForm">
    		<field property="note.title" depends="required">
    			<msg name="required" key="note.form.error.title" />
    		</field>
    		<field property="note.content" depends="required">
    			<msg name="required" key="note.form.error.content" />
    		</field>
    		<field property="note.description" depends="required">
    			<msg name="required" key="note.form.error.description" />
    		</field>
    	</form>
    </formset>
    J'ai une action d'ajout d'une note définie comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <action path="/newNoteSubmit"
    	type="org.lr.mydataNotes.view.web.action.NewNoteSubmitAction"
    	attribute="noteForm"
    	name="noteForm"
    	scope="request"
    	input="/newNote.do"
    	validate="true">
    </action>
    et une autre pour l'édition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <action path="/editNoteSubmit"
    	type="org.lr.mydataNotes.view.web.action.EditNoteSubmitAction"
    	attribute="noteForm"
    	name="noteForm"
    	scope="request"
    	input="/editNote.do"
    	validate="true" >
    </action>
    J'ai deux pages jsp très semblables (editNote.jsp et newNote.jsp) qui contiennt mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html:errors />
    <html:form action="newNoteSubmit.do" >
    (ou action="editNoteSubmit.do")
    	<html:text property="note.title"/>
    	<html:textarea property="note.content" />
    	<html:textarea property="note.stringKeywords"/>
    	<html:textarea property="note.description" />
    	<html:submit>
    		<bean:message key="note.form.new.submit"/>
    	</html:submit>
    </html:form>
    Maintenant, je commence par ce qui marche.
    -Je peux utiliser newNote.jsp pour ajouter une note.
    -Si le champs "note.title" ou "note.content" ou "note.description" est vide, newNote.jsp s'affiche avec le(s) bon(s) message(s) d'erreur(s).

    -Je peux utiliser editNote.jsp pour modifier une note.
    -Les champs contiennt bien les données de la note.
    -Je peux modifier les valeurs des champs.

    Maintenant, ce qui ne marche pas
    -Dans editNote.jsp, lorsque je supprime le contenu d'un champs, EditNoteSubmitAction.execute n'est plus appelé.
    -Aucun message d'erreur lorsque je soumet le formulaire après avoir effacer le title, le contenu ou la description.

    Je débute avec les formulaires struts et la validation, et je ne comprend pas du tout comment il est possible qu'après avec envoyé un formulaire (submit dans le browser) je ne rentre pas dans la méthode "execute" de mon action...

    Merci d'avance pour vos éclaircissements
    Lilian

  2. #2
    Membre émérite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    il y a un truc qui me choque a priori :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    input="/editNote.do"
    En general on mets une JSP ici.

    Sinon quelle est la cinématique de ton appli ?

  3. #3
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par RanDomX
    il y a un truc qui me choque a priori :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    input="/editNote.do"
    En general on mets une JSP ici.
    On dirait effectivement que le problème vient de là.
    Je vais faire quelques tests...

    Citation Envoyé par RanDomX
    Sinon quelle est la cinématique de ton appli ?
    Je ne sais pas trop ce que tu entends par cinématique.
    L'utilisateur peut ajouter/modifier/supprimer/lire des notes.

    Chaque formulaire est associé à une action AVANT (pour préparer le formulaire) et une action APRES (submit).

    Merci pour ton aide
    Lilian

    [/quote]

  4. #4
    Membre émérite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    l'input c'est la "ressource web" à valider.

    EN cas de plantage, ton action reviendra sur cet input. Ton pb vient du fait que t u chaine les actions en faisant ref à la même action.

    Du coup les erreurs disparaissent du scope (car nouvel appel, comme si ct la première fois que tu appelles l'action editForm.do).

    @+

  5. #5
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Citation Envoyé par RanDomX
    l'input c'est la "ressource web" à valider.

    EN cas de plantage, ton action reviendra sur cet input. Ton pb vient du fait que t u chaine les actions en faisant ref à la même action.

    Du coup les erreurs disparaissent du scope (car nouvel appel, comme si ct la première fois que tu appelles l'action editForm.do).

    @+
    Merci, en effet maintenant c'est plus clair ça marche nickel.
    A+Lilian

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ JAAS ][ Struts ] Formulaire Authentification
    Par cirdec dans le forum Struts 1
    Réponses: 14
    Dernier message: 05/02/2006, 18h22
  2. [Struts] Formulaire dynamique
    Par captain_kirk dans le forum Struts 1
    Réponses: 6
    Dernier message: 10/01/2006, 17h08
  3. [Struts] Formulaire dynamique
    Par sg-40 dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/11/2005, 08h58
  4. Réponses: 7
    Dernier message: 16/03/2005, 12h35
  5. [struts]Formulaire dynamique
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/05/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo