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 :

select et bean:define


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
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut select et bean:define
    Bonjour,
    Je suis débutant en Struts, j'ai une arrayliste de bean dans mon actionform et je voudrais afficher un des champs dans une liste select dans une page JSP.

    dans l action:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    request.setAttribute("listepass",listeform);
     
    		return mapping.findForward("goto");
    Dans la page JSP j'écris:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <logic:present name="listepass">
    	<bean:define id="laListeTypes" name="listepass" scope="request" />
    	<bean:size id="lnNbTypes" name="laListeTypes" />
    		<select size="1" name="type" class="data" style="width:240px"                                             id="leType">
    		  <option value="">(Choisissez)</option>
    		     <logic:iterate id="lType" name="laListeTypes">
    			   <bean:define id="lechamp" name="lType" property="id" type="String"/>
    			 <option value="<%=lechamp%>"><%=lechamp%></option>								
    		     </logic:iterate>
            </select>
    </logic:present>


    avant même de lancer l'application il y a une erreur "cannot resolve symbol lechamp" devant la ligne <option value="<%=lechamp%>"><%=lechamp%></option>


    SVP aidez moi!!!

  2. #2
    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
    Tu devrais plutôt utiliser le tag html:select comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:present name="listepass">
      <html:select property="type">
        <html:option value="(Choisissez)"/>
        <html:options collection="listepass" property="id" labelProperty="id"/>
      </html:select>
    </logic:present>
    Dans ce cas, plus besoin d'utiliser le tag bean:define.

    Sans oublier de rajouter la directive taglib qui pointe sur struts-html.tld :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut pardon j ai pas bien collé struts-conf dans la réponse précédente
    Merci beaucoup pour votre aide et votre indulgence, mais quand j'ai mis le code que vous m'avez proposé, au lancement il n'y a pas d'erreur; par contre je n'obtients pas la liste dans ma page JSP. Je crois que je suis entrain de commetre une erreur un peu bête , alors je vais expliciter un peu plus:

    au départ il y a la page go.jsp, quand je submit, l'action go.do est donc exécuté, c'est là ou je rempli ma liste et j'ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    request.setAttribute("listepass",listeform);
    return mapping.findForward("goto");
    Le forward goto est supposé donc nous renvoyé a la page affiche.jsp ou devrait s'afficher notre liste, voila tout le code de affiche.jsp:
    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
    37
    38
    39
     
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     
     
    <html>
    <head>
    <base href="<%=basePath%>">
     
    <title>My JSP 'affiche.jsp' starting page</title>
     
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
     
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    </head>
     
    <body>
    this is a struts page. <br>
     
    <logic:present name="listepass">
    <html:select property="id">
    <html:option value="(Choisissez)"/>
    <html:options collection="listepass" property="id" labelProperty="id"/>
    </html:select>
    </logic:present>
     
    </body>
    </html>
    et pour struts-config.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <action
          attribute="goForm"
          input="/form/go.jsp"
          name="goForm"
          path="/go"
          scope="request"
          type="com.yourcompany.struts.action.GoAction">
          <forward name="goto" path="/affiche.jsp" />
        </action>
    Encore une fois merci beaucoup!

  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
    J'ai rajouté ceci dans ma réponse tout à l'heure.
    Comme tu étais en train de me répondre, tu ne l'as peut-être pas vu.
    Citation Envoyé par c_nvy
    Sans oublier de rajouter la directive taglib qui pointe sur struts-html.tld :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>
    Sinon, la prochaine fois, pense à mettre les balises [CODE] pour rendre la discussion plus lisible.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut
    merci encore et pardon pour la gaffe.
    je l'ai rajouté comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    parce que le fichier struts-html est directement dans web-inf .
    seulement j'obtiens cette fois l'erreur:
    javax.servlet.ServletException: Cannot find bean under name org.apache.struts.taglib.html.BEAN
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.affiche_jsp._jspService(affiche_jsp.java:113)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service
    Merci pour votre disponibilité

  6. #6
    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
    Alors, essaie en remplaçant le html:options par un html:optionsCollection qui se code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:present name="listepass">
      <html:select property="id">
        <html:option value="(Choisissez)"/>
        <html:optionsCollection property="listepass" value="id" label="id"/>
      </html:select>
    </logic:present>
    Et si tu veux que le tag logic:present soit interpreté, il faut aussi rajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut
    j'ai rajouté les deux balises mais j'obtiens toujours la méme erreur :
    Cannot find bean under name org.apache.struts.taglib.html.BEAN
    Entre temps j'ai fait ma petite recherche, on a déja proposé à quelqu'un sur ce forum de rajouter dans le fichier web.xml ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      <taglib>
        <taglib-uri>/WEB-INF/struts-html</taglib-uri>
        <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
      </taglib>
     
      <taglib>
        <taglib-uri>/WEB-INF/struts-logic</taglib-uri>
        <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
      </taglib>
    mais le fichier ne reconnait pas taglib et j'obtiens d'ailleurs toujours la même erreur.

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

Discussions similaires

  1. Utilisation bean:define ?
    Par SrK dans le forum Struts 1
    Réponses: 15
    Dernier message: 13/06/2006, 17h02
  2. Réponses: 4
    Dernier message: 15/02/2006, 17h24
  3. [Struts] paramètre JS dans un bean:define
    Par Mrlud dans le forum Struts 1
    Réponses: 4
    Dernier message: 09/06/2005, 14h38
  4. Réponses: 4
    Dernier message: 19/04/2005, 13h42
  5. [Struts]pb de Bean define
    Par tscoops dans le forum Struts 1
    Réponses: 8
    Dernier message: 02/03/2005, 09h12

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