JSP affichage données depuis .java

Résolu
mathieu -  
 mathieu -
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
A voir également:

3 réponses

Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
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 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Marco a encore frappé ;)

Bonne journée.
0
mathieu
 
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   Statut Contributeur Dernière intervention   329
 
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
mathieu
 
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   Statut Contributeur Dernière intervention   329 > mathieu
 
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   Statut Contributeur Dernière intervention  
 
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