2014-04-28 5 views
4

Salut je suis en train d'appeler la classe régulière java dans la page jsp et que vous souhaitez imprimer une page jsp quand je suis en train de faire, je ne reçois pas de sortieComment appeler la classe Java dans Jsp

Voici mon code

MyClass.java

package Demo; 
public class MyClass { 
    public void testMethod(){ 
     System.out.println("Hello"); 
    } 
} 

test.jsp

<%@ page import="Demo.MyClass"%> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <jsp:useBean id="test" class="Demo.MyClass" /> 
    <% 
    MyClass tc = new MyClass(); 
    tc.testMethod(); 
    %> 
</body> 
</html> 

Comment puis-je obtenir ma sortie désirée?

+0

JE NE ME PROCURE – user3575501

+1

System.out identifie la console de votre serveur Web, souvent redirigée par le serveur Web vers un fichier. Si vous voulez écrire dans le navigateur, vous devez écrire dans l'enregistreur JSP. Mais vous ne devriez JAMAIS utiliser les scriptlets dans les JSP. Utilisez des servlets pour le code Java et utilisez uniquement les balises JSP EL, JSTL et personnalisées dans les JSP. Lisez à propos de MVC. Lire http: // stackoverflow.com/questions/2188706/comment-éviter-utiliser-scriptlets-dans-ma-jsp-page –

+0

quoi 'testClass'? – MaVRoSCy

Répondre

6

La déclaration JSP useBean n'est pas nécessaire dans votre code.

utiliser juste

<body> 
<% 
    MyClass tc = new MyClass(); 
    tc.testMethod(); 
%> 
</body> 

Mais cela n'imprimer quoi que ce soit sur la JSP. Il imprimera simplement Hello sur la console du serveur. Pour imprimer Hello sur la page JSP, vous devez renvoyer une chaîne de votre classe Java auxiliaire MyClass, puis utiliser le flux de sortie JSP pour l'afficher.

Quelque chose comme ceci:

En classe Java

public String testMethod(){ 
    return "Hello"; 
} 

Et puis dans JSP

out.print(tc.testMethod()); 
+0

j'ai utilisé cette erreur d'affichage Message type void n'est pas autorisé ici – user3575501

+0

probablement dans votre classe java vous avez encore 'void' comme type de retour dans votre méthode. C'est faux. 'Void' indique au compilateur que la méthode ne devrait rien retourner. Remplacer 'void' par' String' – MaVRoSCy

0

Salut utiliser votre nom de classe correctement

<% 
MyClass tc = new MyClass(); 
     tc.testMethod(); 

    %> 

au lieu de

<% 
testClass tc = new testClass(); 
     tc.testMethod(); 

    %> 

également lorsque vous utilisez jsp: useBean, il crée un nouvel objet avec le nom comme identifiant dans votre jsp servlet converti.

Il faut donc utiliser cet identifiant lui-même pour appeler une méthode au lieu de créer nouvel objet à nouveau

+0

je l'ai fait mais ne fonctionne pas – user3575501

+0

utiliser MyClass intead de testclass et le changement a été mis à jour dans la même réponse –

0

Juste pour compléter toutes les possibilités, vous pouvez également utiliser le <% = opertator comme :

<% 
MyClass tc = new MyClass(); 
%> 


<h1><%= tc.testMethod(); %> </h1> 

et juste pour reprendre, les points clés:

  1. comprennent classe avec <% @ Page tag importation
  2. utiliser la classe comme d'habitude dans le comportement .java
  3. données d'impression avec out.print, <% = ou jstl out tag
Questions connexes