Afficher des données sur ma page d'accueil JSP - Java - Programmation
Marsh Posté le 14-02-2013 à 18:12:42
Tu peux faire cela à partir du jsp, cf
http://www.java2s.com/Code/Java/JSP/Database.htm
Mais :
a) les bonnes pratiques disent que (en simplifiant) le codage de ton besoin se fera en :
- tu crées une datasource dans ton serveur d'application
- la servlet accède à la base de données en utilisant la datasource,
fait la requête,
valorises les valeurs qui t’intéressent dans la session ou la request
et forwarde vers le jsp
- la jsp prends les valeurs dans la request ou la session et les affiches
rien de plus
Pas sûr que tu comprennes ceci mais
la raison est que c'est maintenable, extensible, évolutif, robuste etc etc
a) tu vas coder ta page à l'arrache avec tes petites connaissances
mais tu coderas de la pire des manières
et je dirai tu vas anti-apprendre à coder et prendre de mauvaises habitudes
c) je ne sais pas quel est ton but à long terme mais si un jour tu cherches un job de développeur java tu ne pourras pas te vanter de tes petits travaux maison
Marsh Posté le 14-02-2013 à 18:16:13
Mots clefs si tu te décides à faire de la servlet : mvc servlet jsp
Marsh Posté le 15-02-2013 à 09:30:49
Ok, merci beaucoup pour la réponse =)
Je vais essayer de suivre les bonnes pratiques ! C'est comme ca qu'on apprend.
T'en fais pas pour mon but à long terme, je suis en stage dans une entreprise et j'essaie de leur développer une petite application, pas bien compliquée en soit, mais qui permettrait de simplifier deux trois choses
Merci encore
Je te tiens au courant de mon avancement =D
Marsh Posté le 20-02-2013 à 15:05:54
Bonjour !
J'ai, je pense, fait tout cela désormais, mais voila, je me frotte à un autre souci maintenant... Et du coup, beh mes données ne s'affichent toujours pas =/
J'ai donc ma servlet qui récupère les données de la base et les stocke dans une ArrayList, données que je forwarde à ma JSP.
Du coté de la jsp, j'ai créé une boucle foreach, pour adapter la structure de ma page aux données présentes dans la base. Et dans cette boucle foreach, je fais un présumé appel des données forwardées. Cependant, lorsque je lance l'appli, les données sont au mieux "null", ou bien rien du tout n'est affiché (case blanche quoi)... De plus, la structure, beh je voudrais qu'elle s'adapte et qu'elle se reproduise autant de fois qu'il y à de lignes dans ma base (ce a quoi je pense que sert le foreach), mais la ligne n'apparait qu'une fois, et est vide.
Bon, je progresse dans le sens où avant je ne savais même pas comment fonctionnait la servlet, mais j'y suis pas encore quoi x)
Ma page Index.jsp :
Code :
|
J'ai même tenté le foreach avec la syntaxe suivante, sauf que cette fois, rien du tout n'apparait, même pas la structure :
Code :
|
(Comme on peut le voir, j'ai essayé plusieurs manières différentes d'afficher ces données, rien n'y à fait)
La servlet AffichageIndex.java :
Code :
|
Donc, la aussi, j'ai essayé plusieurs manières de récupérer les données
J'arrive pas a comprendre d'où pourrait venir le problème... Je commence a me taper la tête sur le clavier
Merci d'avance.
Marsh Posté le 22-02-2013 à 13:53:48
Instrumentes ton code. a tous les niveaux possibles. ajoutes des traces. Fais des System.out (a defaut d utiliser un logger comme log4j)
Quand tu fais des projet.add(rs.getString("numero" ).toString());
comment es tu sur que les rs.getString... ramenent une valeur?
Marsh Posté le 22-02-2013 à 15:45:08
willy le kid a écrit : Instrumentes ton code. a tous les niveaux possibles. ajoutes des traces. Fais des System.out (a defaut d utiliser un logger comme log4j) Quand tu fais des projet.add(rs.getString("numero" ).toString()); |
Ok, donc j'ai modifié mon code... J'arrive désormais à récupérer les informations dans ma arrayList et à avoir un retour sur ma page JSP !
Désolé Willy, a peine tu as le temps de me répondre que j'ai déja un autre problème =s
Sur ma JSP, j'arrive a itérer sur les fameuses données. Ma boucle foreach modifie la structure de ma page, et varie selon le nombre d'occurrences que j'ai dans ma base. Mais au moment d'appeler les informations de ma Liste, je ne peux qu'appeler un groupe d'informations.. Je te joins mes pages et je t'explique :
Servlet :
Code :
|
ma jsp :
Code :
|
Donc, comme tu peux le voir, sur ma JSP, j'appelle l'information v, grace à la balise <c:out value="${v}"></c:out>... elle me retourne les listes Projets complètes... Cela donne un résultat qui ressemble à ca :
Projet [numero=7, intitule=ok, statut=C, domaine=DIVERS, datecreation=2013-02-22, datebutoire=2015-01-01, description=Une Description] (C'est donc ce qui s'affiche dans mon tableau littéralement)
Par contre, j'aimerai n'afficher que l'information intitulé à cet endroit la par exemple
Mais quand je précise que l'information que je veux est v.intitulé (ce que je suppose qu'il faut faire) il me retourne une erreur....
J'en conclut que ce "Projet [numero=7, i/.../on]" est compté comme une chaine de caractères à part entiere.. N'est ce pas ?
Mais comment est ce que je peux récupérer seulement l'information qui m'intéresse ? ='(
Je commence à me taper la tete sur le clavier... à chaque fois que j'arrive à surpasser une erreur, j'en ai une autre derriere !
Dans tous les cas, merci pour ton précédent message, j'ai sauvé les valeurs dans des variables associées et grâce à ca je peux voir qu'il y à bel et bien quelque chose derriere ! =)
à bientôt ! Merci encore pour ta patience exemplaire
Marsh Posté le 22-02-2013 à 22:35:46
tu cherches le resultat.projet.intitule et tu mets projet sous la var "v"
donc je suppose
<c:out value="${v.intitule}"></c:out>
ou alors fouilles dans les tutoriaux JSTL
http://www.developpez.net/forums/d [...] c-foreach/
Marsh Posté le 25-02-2013 à 10:06:40
EDIT :
Oulah, autant pour moi, ca marche nickel !
Pour je ne sais quelle raison, ma classe était en private... Ca ne risquait pas de fonctionner !
Dans tous les cas, avec le <c:out value="${v.intitule}"></c:out>, ca marche super !
Merci beaucoup Willy =D
Je met ce post en résolu ! (Il en aura fallu du temps x) )
Marsh Posté le 14-02-2013 à 15:02:37
Bonjour à tous,
Je suis assez nouveau en programmation, et je programme ma première application web...
J'expose donc mon problème.
Lors du lancement de mon application, j'arrive sur une page Index.jsp, qui est supposée afficher des données de ma base (il s'agit d'une base de données Derby) rentrées précédemment sur une autre base.
Mais vu que c'est ma page d'accueil, je ne passe pas au préalable par une servlet. Y a t'il donc moyen d'aller chercher ces données directement depuis une page JSP via une requête SQL ou quelque chose comme ca ?
Pour voir plus clair, voila une partie du script de ma page :
Donc, j'aimerai, plutôt que d'afficher le mot "Intitule" par exemple, aller piocher dans ma base derby : Intitule, dans la table PROJETS
De même pour Domaine, je souhaiterai afficher le Domaine, tiré de la table Projet.
Faut il créer une connexion à la base directement dans ma page JSP ? Ou bien faut il créer une servlet qui serait appelée à je ne sais quel moment ?
Merci d'avance ! =) Puis bonne journée à vous
---------------
Votre vie est régie par ce que les gens attendent de vous