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] <Bean:write> dans un <html:select>


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Par d�faut [Struts] <Bean:write> dans un <html:select>
    Mon probl�me est situ� dans le code ci dessous : je voudrais renvoyer � une fonction javascript la valeur choisie dans mon select mais aussi le num�ro contenu de mon document dans "<bean:write name='documentActionData property='documentData.id'/>" ..


    <!-- Definition d'un bean : liste des actions de type List-->
    <bean:define id="actionDataList" name="documentActionData" property="actionDataListCollection"/>

    <html:select name="documentActionData" property="actionDataList" onchange="test(this.options[this.selectedIndex].value,<bean:write name='documentActionData' property='documentData.id'/>);this.selectedIndex= 0;">
    <html:option value="#">----------------------</html:option>
    <html:options collection="actionDataList" property="name" labelProperty="name"/>
    </html:select>
    La page m'affiche une erreur javascript "Erreur:Erreur de syntaxe"

    Vous avez la solution ?? je suis preneur (je ne suis pas un pro Struts ..)

    Merci

    Mod�r� par zekey: Utilisez plutot des tags dans le titres. Merci

  2. #2
    Membre confirm� Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par d�faut
    J'ai eu une erreur de se type. J'ai constat� que �a venez du fait que onChange ou autre accepte seuleument du texte ou seulement une balise de type <bean:write ..>
    Donc soit tu met que du texte soit tu mets qu'une balise

    Essaye aussi d'afficher ton code pour voir s'il te met la bonne valeur dans le onChange !

  3. #3
    Membre confirm�
    Inscrit en
    Mai 2005
    Messages
    64
    D�tails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 64

  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
    En codant la fonction javascript suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function test()
    {
    var selectId=document.getElementsByName('selectId')[0].value;
    alert(selectId) ;
    }
    
    et le tag html:select suivant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    <html:select name="documentActionData" property="selectId" onchange="test();>
      <html:option value="#">----------------------</html:option>
      <html:options collection="actionDataList" property="id" labelProperty="name"/>
    </html:select>
    dans la fen�tre d'alerte, tu devrais r�cup�rer l'id select�.
    La fen�tre alert, c'est juste pour t'assurer que �a correspond bien � ce que tu attends.

    Ceci suppose que tu as une propri�t� selectId dans ton ActionForm avec getter et setter.

    Je l'ai appel� selectId et non actionDataList parce que je trouve dommage de donner le m�me nom � la propri�t� s�lect�e et � la collection.

    Vois si �a correspond � ton besoin.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Par d�faut
    Merci de m'avoir r�pondu

    je r�pond en premier � c_nvy :

    Je ne peux aller chercher les informations � partir du script javascript car en faite ma page final affiche une liste de documents enregistr�s dans ma BDD ...

    Pour chaque document, j'ai une liste d'actions possible (d'ou le select) ... Je dois imp�rativement renvoyer du select � ma javascript l'action � r�alis� (this.options[this.selectedIndex].value) mais aussi l'ID du document concern� (<bean:write name="documentActionData" property="documentData.id" />)

    Vu que je fais un <logic:iterate> pour boucler sur tous mes documents et qu'a la fin de chaque ligne correspondant � un document, j'int�gre un <html:select>, je ne peux du script aller chercher l'info du select car ils sont tous le m�me nom ...

    Je r�pond maintenant � Stela86:

    J'ai trouv� ta remarque tres interessante
    J'ai constat� que �a venez du fait que onChange ou autre accepte seuleument du texte ou seulement une balise de type <bean:write ..>
    Donc soit tu met que du texte soit tu mets qu'une balise
    Donc j'ai fais comme tu as dit et pour test� j'ai seulement mis une balise :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <html:select name="documentActionData" property="actionDataList" onchange='javascript:test(<bean:write name="documentActionData" property="documentData.id" />);this.selectedIndex= 0;'>
    <html:option value="#">----------------------</html:option>
    <html:options collection="actionDataList" property="name" labelProperty="name"/>
    </html:select>
    Le probl�me est que j'ai toujours mon erreur javascript "Erreur:Erreur de syntaxe" et que quand je regarde le source de ma page IE, il interprete pas ma balise :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select name="actionDataList" onchange="javascript:test(<bean:write name="documentActionData" property="documentData.id" />;);this.selectedIndex= 0;">
    <option value="#">----------------------</option>
    <option value="create">create</option>
    <option value="view">view</option>
    <option value="update">update</option>
    <option value="checkin">checkin</option>
    <option value="cancel_checkout">cancel_checkout</option>
    <option value="view_history">view_history</option>
    <option value="delete">delete</option>
    <option value="view_attribute">view_attribute</option>
    <option value="search">search</option></select>
    Ai-je mal interpr�t� ta remarque ??

    Merci de m'aider


    Au besoin, je vous met une partie du code de ma page:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <logic:present name="<%=Constants.DOCUMENT_ACTION_LIST%>" scope="request">
    <logic:iterate id="documentActionData" name="<%=Constants.DOCUMENT_ACTION_LIST%>"
    scope="request"			type="com.bean.document.DocumentActionData">
    <tr>
    <th style="border-bottom:1px solid #C1CDD8;" nowrap>&nbsp;
    <logic:present name="documentActionData" property="documentData.lockedby">
    <i><bean:write name="documentActionData" property="documentData.lockedby.name" /></i>
    </logic:present>
    </th>
    <th align="left" style="border-bottom:1px solid #C1CDD8;" nowrap>
    <html:link action="/document/view" paramId="id" paramName="documentActionData" paramProperty="documentData.id">
    &nbsp;<bean:write name="documentActionData" property="documentData.title" />
    </html:link>
    </th>
    <th align="left" style="border-bottom:1px solid #C1CDD8;" nowrap>&nbsp;<bean:write
    name="documentActionData" property="documentData.businessRevision" /></th>
    <th align="left" style="border-bottom:1px solid #C1CDD8;" nowrap>&nbsp;<bean:write
    name="documentActionData" property="documentData.projectNumberId" /></th>
    <th align="left" style="border-bottom:1px solid #C1CDD8;" nowrap>&nbsp;<bean:write
    name="documentActionData" property="documentData.lpiCreationDate" /></th>
    <th align="left" style="border-bottom:1px solid #C1CDD8;" nowrap>&nbsp;<bean:write
    name="documentActionData" property="documentData.objectType.description" />
    </th>
    <th class="result" style="border-bottom:1px solid #C1CDD8;" nowrap>&nbsp;
     
    <!--  Definition d'un bean : liste des actions de type List-->
    <bean:define id="actionDataList" name="documentActionData" property="actionDataListCollection"/>
     
    <html:select name="documentActionData" property="actionDataList" onchange='javascript:test(<bean:write name="documentActionData" property="documentData.id" />);this.selectedIndex= 0;'>
    <html:option value="#">----------------------</html:option>
    <html:options collection="actionDataList" property="name" labelProperty="name"/>
    </html:select>					
    </th>
    </tr>
    </logic:iterate>
    </logic:present>

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Par d�faut
    On ne peut pas mettre un tag struts � l'int�rieur d'un autre tag (donc pas de <bean... dans un <select...>).
    Tu peux par contre repasser en jsp pour cette partie l� :
    <%=documentActionData.getDocumentData().getId()%>

  7. #7
    Membre confirm� Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par d�faut
    Bien sur que l'on peut chez moi j'ai fait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <option value="<nested:write property="id" />">
    et �a fonctionne tr�s bien !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    javascript:test(<bean:write name="documentActionData" property="documentData.id" />;);this.selectedIndex= 0;
    tout �a doit etre dans une balise pour que tu puisse ecrire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <%
    String style = "javascript:test("+TonBEAN.getDocumentData.getID+");this.selectedIndex= 0;";
    %>
    onchange="<%=style%>"

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Par d�faut
    Je viens de supprimer ma derni�re r�ponse ..

    En faite, ta derni�re r�ponse a �t� la cl� de la r�ussite ... (je ne l'avais pas vu lors de mon dernier post)

    Je vous remercie tous pour votre aide et surtout stela86 qui m'a donn� la solution ... et neuromencien

    Encore merci .. je n'h�siterais plus � demander sachant qu'il y a des personnes comp�tentes sur ce forum ...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <%
    String num_id = "javascript:test(this.options[this.selectedIndex].value,"+ documentActionData.getDocumentData().getId() +");this.selectedIndex= 0;";
    %>								
    <html:select name="documentActionData" property="actionDataList" onchange='<%=num_id%>'>
    <html:option value="#">----------------------</html:option>
    <html:options collection="actionDataList" property="name" labelProperty="name"/>
    </html:select>

  9. #9
    Membre confirm� Avatar de stela86
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par d�faut
    Mais de rien les forums sont l� pour aider !
    N'oublie pas le tag

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Par d�faut
    Citation Envoy� par stela86
    Bien sur que l'on peut chez moi j'ai fait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <option value="<nested:write property="id" />">
    et �a fonctionne tr�s bien !
    Autant pour mois alors. Comme �a ne marchais pas avec les <bean:write> j'en ai peut �tre d�duis un peu trop vite que �a ne marchais avec aucun tag.
    Ceci dit dans ce cas l� il est quand m�me oblig� de repasser en JSP puisqu'il n'� pas l'occasion d'utiliser le tag nested.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�cup�rer les valeurs d'une requ�te SQL dans un champs html SELECT
    Par tamiii dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 10/11/2007, 13h27
  2. R�ponses: 7
    Dernier message: 21/02/2006, 11h42
  3. [STRUTS] balise <bean:write> dans <html:link>
    Par adrien.nicolet dans le forum Struts 1
    R�ponses: 8
    Dernier message: 25/10/2005, 08h56
  4. Struts et <bean:write>
    Par vicros dans le forum Struts 1
    R�ponses: 3
    Dernier message: 17/06/2005, 15h37
  5. R�ponses: 2
    Dernier message: 26/05/2005, 12h11

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