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 :

Récupération des données


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut Récupération des données
    bonjour
    je veux executer une requette select qui me retourne des donnees que je veux afficher sur ma page JSP en utilisant Struts. est ce que qlq a une idee comment afficher les donnees sur les JSP.

    exemple: select * from personne;

    personne(nom,prenom,date_naissance,ville.....)

    NB : je travail avec Struts

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Citation Envoyé par new dotnet(c#)
    est ce que qlq a une idee comment afficher les donnees sur les JSP.
    Oui, j'en ai une petite idée. En cherchant un peu:
    ftp://ftp-developpez.com/mbaron/javaee/struts.pdf

    C'est peut etre contraignant d'avoir à lire des tutos mais il faut déjà avoir des bases avant de commencer à utiliser struts, et ta question n'est trop vague pour obtenir une reponse.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    oui j ai lu le pdf mais ca ne donne pas une idee sur comme afficher les lignes d'une requette qui retourne plusieurs attributs ds une page JSP. je crois qu il faut jouer sur les tableaux et les tags mais ca reste pour le moment un petit peu flou. si qlq un a une idee ou un doc ca sera le bienvenue et merci en avance

  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
    Le plus simple est de créer une classe Personne avec pour propriétés nom, prenom, ..., et les getters et setters correspondants.

    Puis, dans la méthode execute de ton Action, en balayant ton ResultSet, tu constitues une ArrayList de beans Personne.
    Ensuite, tu la mets dans le scope (request ou session) pour la rendre accessible dans la jsp.
    Et enfin, dans la jsp, tu affiches la collection de beans Personne avec le tag logic:iterate par exemple.

    Regarde cette discussion dans laquelle j'avais donné un exemple de code.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    merci pour ta reponse mais si on veut faire l operation inverse cad on affiche un tableau ou il a comme colonne : nom prenom ville...... ou l utilisateur peut saisir plusieurs lignes et la fin il valide l insertion. donc si tu veux on met un tableau dynamique de sorte de datagrid je sais pas comment on va faire?

  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
    Dans ce cas, il existe le tag layout:datagrid de Struts-Layout.
    Tu trouveras un exemple de mise en oeuvre dans la demo avec la possibilité de télécharger le code source.
    Et il existe aussi plusieurs discussions ouvertes à ce sujet sur le forum.

  7. #7
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    est ce qu il n y a pas des documents descriptifs en francais a part le doc officiel par ce que pas facile a apprendre je crois que struts layout a bcp de fonctionalites mais le prob c est le manque des docs

  8. #8
    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
    Je ne connais pas de doc en français à part la doc officielle.
    Mais bon, avec cette doc, le code source de la demo et les quelques discussions ouvertes à ce sujet sur le forum, tu devrais pouvoir t'en sortir.
    Il suffit de se lancer.

  9. #9
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    merci je vais essayer comme meme et si je me bloque je vais le signaler

  10. #10
    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
    As-tu vu sur le site de Struts-Layout le tutoriel sur le datagrid ici ?

  11. #11
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    stp jai 3 problemes :

    1-j ai suit les instructions que tu m as dit de creer une classe client pour la mettre ds une liste pour les afficher en suite en utlisant iterator, ca marche bien avec les String mais un champ de type int ca bloque!!! est ce que je dois obligatoirement travailler avec les chaines de caratere?

    2-je veux passer une variable a travers un lien j ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="editclient.do?id_client=<bean:write name="client" property="id_client"/>">lien</html:link></td>
    ca bloque!! alors si je mis pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="editclient.do?id_client=1">lien</html:link></td>
    ca marche

    3-j ai une classe client je remplis les champs de cette classe pour construire enfin un bean, apres je veux afficher les champs ds un formulaire j ai fais dans la classe (Action) qui se charge de remplir le nom,prenom.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req.setAttribute(mapping.getAttribute(), client);
    pour les transferes a une page JSP qui contient des items
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td> <html:text property="nom"/></td> 
    <td> <html:text property="prenom"/></td>
    <td> <html:text property="age"/></td>
    .
    pour tous les champs de la classe client.

    mais ca marche pas aussi
    je m excuse si j ai une question longue

  12. #12
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Citation Envoyé par new dotnet(c#)
    <html:link href="editclient.do?id_client=<bean:write name="client" property="id_client"/>">lien</html:link></td>
    Pour ceci, essayes ceci plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <html:link href="editclient.do?id_client=${sessionScope['NomDeTonForm'].id_client}">lien</html:link></td>

  13. #13
    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
    1) Quel message d'erreur obtiens-tu ?

    2) En utilisant les EL, comme te l'a indiqué zorm, mais dans ton cas, ce serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link action="editclient.do?id_client=${client.id_client}">lien</html:link>
    Par contre, cette solution ne fonctionnera que si tu es en J2EE 1.4, soit plus concrètement si tu as ceci dans ton web.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    	version="2.4">
    Sinon, il faut utiliser la tld struts-html-el.tld comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html-el:link action="editclient.do?id_client=${client.id_client}">lien</html-el:link>
    en n'oubliant pas d'ajouter au début de la jsp la directive taglib qui pointe sur struts-html-el.tld.

    3) Remplace ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req.setAttribute(mapping.getAttribute(), client);
    par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm = (TonActionForm) form ;
    tonActionForm.setClient(client) ;
    Ceci implique que le form-bean est référencé via l'attribut name dans le mapping de l'Action dans le struts-config.xml.

    Et dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html:form action="/pathDeTonAction">
       <html:text property="client.nom"/>
       <html:text property="client.prenom"/>
       <html:text property="client.age"/>
    </html:form>

  14. #14
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    voila l exception:
    org.apache.jasper.JasperException: Cannot find message resources under key org.apache.struts.action.MESSAGE
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:476)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1033)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:436)
    org.apache.struts.action.RequestProcessor.processActionForward(RequestProcessor.java:401)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:523)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  15. #15
    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
    Il faut définir un fichier des messages dans le struts-config.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
        <message-resources parameter="MessageResources"/>
    Pour en savoir plus, voir dans la FAQ.

    As-tu utilisé un tag <bean:message> dans la jsp ?

  16. #16
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    a ma connaissance ce fichier pour la gestion des erreurs moi je veux seulement afficher des ints ds ma page JSP!!

    <td><bean:write name="client" property="id_client"/></td>

    ca marche pas si je travaille avec id_client de type int mais si je change le type a String c bien. je vois pas pourquoi?

  17. #17
    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
    Comme il est dit dans la doc concernant le tag bean:write :
    Retrieve the value of the specified bean property, and render it to the current JspWriter as a String by the ways:

    * If format attribute exists then value will be formatted on base of format string from format attribute and default system locale.
    * If in resources exists format string for value data type (view format attribute description) then value will be formatted on base of format string from resources. Resources bundle and target locale can be specified with bundle and locale attributes. If nothing specified then default resource bundle and current user locale will be used.
    *If there is a PropertyEditor configured for the property value's class, the getAsText() method will be called.
    Otherwise, the usual toString() conversions will be applied.
    Donc, dans le cas où la propriété est de type int, il cherche à la convertir en String.
    Pour l'attribut format, il est écrit ceci :
    Specifies the format string to use to convert bean or property value to the String. If nothing specified, then default format string for value data type will be searched in message resources by according key.
    Ceci explique pourquoi il a besoin du fichier ressources.
    Et comme tu n'as pas défini de fichier de ressources, ceci explique pourquoi tu as le message d'erreur que tu as donné précédemment.

    Donc, essaie d'ajouter dans le tag bean:write l'attribut format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="client" property="id_client" format="##0"/>
    Le format que j'ai donné est un exemple.
    Il faut mettre le format adapté à ton cas.

  18. #18
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Ca c'est du bel exposé

  19. #19
    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 mixouille
    Ca c'est du bel exposé
    Bof, je ne me suis pas foulée, j'ai fait du copier/coller parce que j'ai eu la flemme de traduire en français.

  20. #20
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    merci bcp c_nvy pour ton explication ca montre quetu as une bonne volante a aider les autres.

    j ai teste avec format ca marche mais ma question comment je dois determiner le code de format =##0 est ce que ce code est relatif au type int date.....est ce que tu peux me detailler comment utiliser le fichier.properties pour ne pas passer pas le champ format. et merci une deuxieme fois

Discussions similaires

  1. Lecture des données EXIF de type RATIONAL
    Par Cedric33 dans le forum C#
    Réponses: 2
    Dernier message: 13/03/2009, 11h30
  2. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  3. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  4. Réponses: 2
    Dernier message: 18/12/2002, 10h30

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