2009-08-06 9 views
7

Je suis actuellement en train de tenter de modifier certains logiciels open source dans JSP et je ne suis pas au courant de la syntaxe.Comment vider une variable dans JSP?

Comment peut-on vider une variable complexe dans le navigateur en utilisant JSP?

+1

Peut-être que vous pouvez utiliser un débogueur à la place? – ChssPly76

Répondre

3

Pour toute variable et la sortie standard, la classe variable doit mettre en œuvre la .toString() méthode. Ensuite, vous pouvez l'envoyer à la page Web rendue à travers le OutputStream dans l'objet HttpServletResponse en utilisant le <% = variable%>. Pour les classes java.lang, cela devrait être immédiat.

Pour les classes plus complexes, vous devez mettre en œuvre le .toString() méthode:


class A { 
    private int x; 
    private int y; 
    private int z; 

    public A(int x, int y, int z) { 
     this.x = x; 
     this.y = y; 
     this.z = z; 
    } 

    // XXX: this method... 
    public String toString() { 
     return "x = " + x + "; y = " + y + "; z = " + z; 
    } 
} 

Vous devez savoir que dans JSP est pas de fonction/méthode telle que var_dump() en PHP ou Données :: Dumper en Perl. Dans d'autres cas, vous pouvez envoyer la sortie au serveur stdout flux, en utilisant System.out.println(), mais n'est pas une façon à recommander ...

Une autre option consiste à mettre en œuvre une méthode statique qui sort tous les membres sur une chaîne bien formatée en utilisant Java Introspection, mais est un problème connu qui n'est pas recommandé d'utiliser Java Introspection dans les environnements de production.

+0

Cela couvre à peu près toutes les bases, je pense. Bonne réponse! –

0

Je ne sais pas ce que vous pouvez faire en dehors de l'exécution manuelle des propriétés de la variable.

<p>Prop1: <%= var1.prop1 %></p> 
<p>Prop2: <%= var1.prop2 %></p> 
1
<% out.println(variable); %> 
+1

Cela dépend de 'VariableClass' ayant une méthode' toString() 'qui restitue correctement son état; sinon vous récupérerez quelque chose comme 'com.mypackage.VariableObject @ 35F0E3' – ChssPly76

Questions connexes