JSP affichage données depuis .java

Résolu/Fermé
mathieu - 16 févr. 2009 à 10:21
 mathieu - 18 févr. 2009 à 16:12
Bonjour,

Je rencontre un problème avec un projet JAVA, peut-être pourrez vous m'aider.

J'ai un fichier .java qui contient des fonctions et qui est correct.
Une de ces fonctions affiche une chaîne de caractère directement dans la console de NetBean (sans utiliser de return).

D'un autre côté j'ai un fichier JSP qui contient un import de ce fichier .java.
Je voudrais afficher dans ma page JSP la chaîne de caractère produite par le fichier java.

La connexion entre les 2 fichiers est correct car une autre fonction du fichier java qui contient un return, renvoie bien le résultat.

Avez-vous une idée ?
Merci

3 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 326
16 févr. 2009 à 11:44
Bonjour,
Il faut que ta classe Java possède une méthode retournant un String (on se moque éperdument qu'elle affiche quelque chose dans ta sortie standard, ça ne sera pas affiché dans ton navigateur).

Dans ta jsp, une fois que ton import est effectué, tu peux faire ceci :
<% TaClasse instance = new TaClasse();%>
<%= instance.affiche(); %>


Si ta méthode actuelle ne retourne pas de String mais fait juste un affichage et retourne void, dans ce cas tu la modifie.

Cordialement,
0
arth Messages postés 9373 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 363
16 févr. 2009 à 12:16
Marco a encore frappé ;)

Bonne journée.
0
Merci.

J'ai modifié ma méthode.

Mais dans cette méthode, je voudrais retourner un tableau à 2 dimensions puis l'afficher.

public String[][] listUser(String string_name)

...

return tab;

je ne sais pas si ces 2 paramètres sont correct...
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 326
18 févr. 2009 à 15:11
Bonjour,
Oui, c'est correct. Cependant je ne comprends pas pourquoi tu poses cette question : pourquoi n'as-tu pas testé avant de venir la poster?

Cordialement,
0
J'ai testé bien entendu avant de venir poster, mais le fait est que ma jsp ne m'affiche toujours pas le tableau.

je n'ai pas utiliser le <%= instance.affiche(); %> car je n'ai pas de méthode affiche.

j'ai fait ceci à la place : instance.listUser (mon_string)

Est-ce que ça peut fonctionner comme ça ? Sinon d'où peut provenir l'erreur ?
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 326 > mathieu
18 févr. 2009 à 15:42
Bonjour,
Ok, je comprends mieux.
Tout d'abord, oui, c'est comme ça qu'il faut appeler ta méthode.

Cependant, le tag <%= ... %> est en fait un raccourci à la méthode toString() de l'objet en paramètre. Le problème ici est que tu utilises un tableau (ici bidimensionnel), qui n'est pas un objet, donc qui n'a pas de méthode toString(), donc qui ne peut pas être affiché.

En général, pour afficher le tableau, tu fais une boucle imbriquée de la manière suivante :
<% String[][] tab = instance.listUser (mon_string); %>
<% for (int i = 0; i < tab.length; i++) { %>
  <% for (int j = 0; j < tab[i].length; j++) { %>
  <%= tab[i][j] %>
  <% } %>
  <br/>
<% } %>


Cordialement,

Edit : Quoiqu'après réflexion ça ne doit pas appeler la méthode toString() vu que les types primitifs sont affichés eux aussi, et que quand tu fais un <%= ... %> sur un objet dans lequel tu n'as pas redéfini toString, ça n'affiche pas l'adresse de l'objet. Donc j'ai dit n'importe quoi ^^
0
mathieu > Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009
18 févr. 2009 à 16:12
Peut importe, la boucle imbriquée fonctionne très bien !

J'ai réussi ce que je voulais faire, il ne me reste plus qu'à mettre de l'ordre dans l'affichage :-)

Merci de ton aide.
0