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 :

Action variable dans un formulaire


Sujet :

Struts 1 Java

  1. #1
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut Action variable dans un formulaire
    Bonjour à tous, et bonnes fêtes pour ceux qui ... font la fête.

    Je suis bloqué sur un point d'une difficulté technique probablement pas très élevée, mais je dois dire qu'au vu de mes connaissances, je sèche un peu.

    Je travaille sur un projet en Struts 1, et j'ai deux actions qui font un forward sur la même page jsp (en gros une page de formulaire, une des actions est la création d'un élément, tandis que l'autre est l'édition de celui ci, donc j'utilise au final les mêmes objets Form et la même page jsp avec quelques finesses au niveau de mon Action).

    Seulement voilà, dans la page de mon formulaire, je dois diriger l'action du formulaire sur une page différente pour chaque action. J'ai donc eu l'idée de générer une variable quelconque pour déterminer quelle action je dois afficher, mais aucune de mes solutions ne marche, j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="${test}">
    Mais j'ai une erreur à l'affichage de la page :

    javax.servlet.ServletException: Cannot retrieve mapping for action /${test}

    J'ai pensé à faire un if sur une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <c:choose>
    <c:when test="${test == 'modif' }">
    <html:form action="modif.do" >
    </c:when>
    <c:otherwise>
    <html:form action="create.do" >
    </c:otherwise>
    </c:choose>
    Mais déjà dans Eclipse il me souligne tout ça en rouge en me disant que les balises sont mal formées (le formulaire n'étant qu'ouvert), et de toute façon, encore une erreur au niveau de la page :

    org.apache.jasper.JasperException: /WEB-INF/jsp/page.jsp(97,0) Unterminated &lt;c:otherwise&gt; tag

    Est-ce qu'il y a une quelconque solution à mon problème, où est-ce que je devrais envisager les choses autrement? Sachant que j'aimerais rester dans un standard "propre" jstl et ne pas avoir recours à des balises jsp pure avec du code java dans ma page jsp...?
    Linio

  2. #2
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,

    Jette un coups d'œil ici, je crois que ça pourrait t'intéresser.

    Tout est dit je crois sur le lien, mais en bref:
    - Ton action doit étendre DispatchAction
    - Sur ton fichier struts-config, ajouter à la déclaration de ton action l'attribut parameter
    - Sur ta jsp, dans ta form, ajouter un hidden avec le même nom que l'attribut, et lui affecter avant le submit de ta form la valeur souhaitée qui représente le nom d'une méthode dans ton action.

    Ainsi tu aurais une seule action, avec tes deux méthodes create et edit.
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 246
    Points
    246
    Par défaut
    je te conseille d'utiliser les Dispatch action qui sont parfaitement adapté à ta problématique.

    edit: oups quelqu'un à répondu avant moi

  4. #4
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Je ne connaissais pas du tout ce mécanisme.
    Effectivement ça correspond à ce que je recherche même si le fait de devoir étendre une classe est particulièrement problématique dans mon cas...

    Enfin je vais tâcher de voir avec ces éléments comment je peux m'en sortir.

    Merci!
    Linio

Discussions similaires

  1. integrer une variable dans un formulaire html
    Par oops! dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2006, 19h48
  2. Probleme d'envoi de variable dans un formulaire
    Par vivian dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/08/2006, 12h17
  3. Réponses: 7
    Dernier message: 02/08/2006, 15h51
  4. passage de variables dans un formulaire
    Par albo69 dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2006, 22h52
  5. Réponses: 2
    Dernier message: 03/02/2005, 08h59

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