Les Allergies
Alimentaires
Posez votre question Signaler

JSP affichage données depuis .java [Résolu]

mathieu - Dernière réponse le 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
Lire la suite 

JSP affichage données depuis .java »

Suggestions
7 réponses
Réponse
+0
moins plus
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,
Ajouter un commentaire
Réponse
+0
moins plus
Marco a encore frappé ;)

Bonne journée.
mathieu - 18 févr. 2009 à 14:27
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...
Ajouter un commentaire
Réponse
+0
moins plus
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,
mathieu - 18 févr. 2009 à 15:23
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 ?
Marco la baraque- 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 ^^
mathieu - 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.
Ajouter un commentaire
Ce document intitulé « JSP affichage données depuis .java » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?