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] auto-reload d'un <html:select>


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Par défaut [Struts] auto-reload d'un <html:select>
    Bonjour,

    Mon petit souci : j'aimerais recharger une page à chaque changement de sélection d'une liste de choix select.

    J'ai donc lu la FAQ Struts (http://java.developpez.com/faq/strut...=list#DropDown), mais voilà, problème : chez moi, un <html:form> ne peux pas prendre d'attribut "name", donc je ne vois pas comment appeler le formulaire depuis l'attribut "onchange" de ma balise <html:select>...

    Quelqu'un saurait-il comment faire malgré tout ?

    Merci par avance,
    Thomas

  2. #2
    Membre averti
    Inscrit en
    Février 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 48
    Par défaut
    chez moi, un <html:form> ne peux pas prendre d'attribut "name"
    Quand tu dis "ne peux pas", tu veux dire que cela ne t'es pas permis ou que cela te provoque une erreur?

    Si cela t'es permis, en plus de préciser l'attribut "name", tu doit préciser l'attribut "type" et préciser la classe du form. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    <html:form name = "nomFormulaire" type="com.machin.struts.form.trucForm" action="/faireQuelqueChose">
    
    A+

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par tetram51
    Bonjour,

    Mon petit souci : j'aimerais recharger une page à chaque changement de sélection d'une liste de choix select.

    J'ai donc lu la FAQ Struts (http://java.developpez.com/faq/strut...=list#DropDown), mais voilà, problème : chez moi, un <html:form> ne peux pas prendre d'attribut "name", donc je ne vois pas comment appeler le formulaire depuis l'attribut "onchange" de ma balise <html:select>...

    Quelqu'un saurait-il comment faire malgré tout ?

    Merci par avance,
    Thomas
    Ca dépend de la version de Struts ...
    Tu connais le nom du formulaire : c'est celui déclaré dans ton struts-config et associé à l'action.

    Eric

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par tetram51
    Bonjour,

    Mon petit souci : j'aimerais recharger une page à chaque changement de sélection d'une liste de choix select.

    J'ai donc lu la FAQ Struts (http://java.developpez.com/faq/strut...=list#DropDown), mais voilà, problème : chez moi, un <html:form> ne peux pas prendre d'attribut "name", donc je ne vois pas comment appeler le formulaire depuis l'attribut "onchange" de ma balise <html:select>...

    Quelqu'un saurait-il comment faire malgré tout ?

    Merci par avance,
    Thomas
    L'attribut name n'existe effectivement plus dans la tld du html:form dans les versions de Struts les plus récentes.
    La référence au formulaire doit être faite dans l'action-mapping de ton action, dans le struts-config.xml, via ce même attribut name.

    Ensuite, tu peux très bien soumettre le formulaire via le onchange comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="itemSelecte" onchange="document.forms['taForm'].submit();">
    
    PS: Réponse en simultané avec Ricky81.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Par défaut
    Pas facile de s'y retrouver entre les différentes versions... Je pense que je vais préciser le numéro de version de Struts dans les tags de mes posts maintenant... (je travaille avec Struts 1.2.8)

    En tout cas un grand merci pour vos réponses ! Ca ne fonctionne pas encore mais je pense que maintenant l'essentiel est là, je vais creuser encore et je vous tiens au courant.

    Thomas

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Par défaut
    Ca y est, tout fonctionne parfaitement !

    Un résumé pour les futurs problèmes (et parceque la reformulation aide à voir les problèmes ):

    Dans struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form-beans>
           <form-bean 
               name="rejetsForm"
               type="monPackage.RejetsForm">
               <form-property name="maDate" type="java.lang.String"/>
           </form-bean>
    </form-beans>
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <action-mappings>
        <action path="/rejets"
            type="monPackage.RejetAction"
            scope="session"
            name="rejetsForm">
            <forward name="success" path="/jsp/donnees/rejets.jsp" />
        </action>
    </action-mappings>
    Dans la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html:form action="/rejets.do">
        <div align="right">
            <html:select property="maDate" onchange="document.forms['rejetsForm'].submit()">
                <html:option value="31/03/2006">31/03/2006</html:option>
                <html:option value="28/02/2006">28/02/2006</html:option>
            </html:select>
        </div>
    </html:form>
    Dans le form RejetsForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private String maDate;  
    public String getMaDate() {return maDate;}
    Et enfin dans la methode execute de l'action RejetsAction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Date maDate = MiseEnForme.stringToDate(((RejetsForm) form).getMaDate());
    ...
    return mapping.findForward("success");
    Merci à tous !
    Thomas

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

Discussions similaires

  1. [Struts] Collection et tag <html:select>
    Par brousaille dans le forum Struts 1
    Réponses: 7
    Dernier message: 18/01/2006, 23h12
  2. [DEBUTANT][STRUTS] Initialiser html:select
    Par mlequim dans le forum Struts 1
    Réponses: 13
    Dernier message: 25/10/2005, 14h59
  3. [struts]html:select
    Par steffy_29 dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/09/2005, 15h37
  4. html:select struts
    Par JulienT dans le forum Struts 1
    Réponses: 3
    Dernier message: 14/04/2004, 11h40
  5. [Struts] preselection ds un html:select ???
    Par FreshVic dans le forum Struts 1
    Réponses: 5
    Dernier message: 10/02/2004, 11h13

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