2013-03-30 6 views
10

Ich habe eine Beispiel-JSP-Datei in Eclipse und eine Java-Datei geschrieben und versuchte die Java-Klasse innerhalb meiner JSP aufzurufen, aber sie funktioniert nicht. Der Code der Java-Datei ist wie folgt:Wie verwende ich eine Java-Klasse in JSP Scriptlet? Der Fehler besagt, dass die Klasse nicht in einen Typ aufgelöst werden kann.

TestJava.jva

public class TestJava { 
    public void test(String msg) 
     { 
      System.out.println("My name is "+msg); 
     } 
} 

Die Javafile bei src-Ordner befindet. Meine JSP-Datei test.jsp ist wie folgt:

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>My First JSP with JAVA</title> 
</head> 
<body> 
<jsp:useBean id="link" scope="application" class = "TestJava" /> 
    <% TestJava t=new TestJava(); 
    t.test("Joy"); 
%> 
</body> 
</html> 

Es gibt Fehler als "TestJava nicht auf einen Typ gelöst werden können". Ich habe andere verwandte Beiträge in Stack Overflow studiert, aber diese Ansätze haben auch nicht funktioniert. Da ich neu bei JSP bin, kann ich nicht verstehen, wie ich diesen Fehler beheben kann. Also frage ich, ob mir jemand helfen kann, das Problem zu lösen.

Vielen Dank.

+0

Ich denke TestJava ein managedbean sein sollte. Ich bin mir nicht 100% sicher. –

+0

Sie sollten Ihre Java-Klasse in 'jsp'-Datei importieren! – boomz

+0

@KorayTugay Managed Bean-Konzept ist für JSF AFAIK, aber es wird nicht auf einfache JSP/Servlet-Entwicklung angewendet. –

Antwort

7

Um Klassenobjekte in Java zu verwenden, müssen Sie zuerst Klassen importieren. Mit Scripts in JSP ziemlich ähnlich, hier importieren Sie es über <%@ page %> Scriplet-Tags.

<%@ page import="your.class*" %>

+0

Ich habe den Namen der Klasse wie folgt angegeben: "<% @ page import =" TestJava "%>". Aber es zeigt immer noch, dass "TestJava nicht gelöst werden kann". – Joy

+0

Geben Sie auch die Paketbeziehung an. Geben Sie weitere Informationen darüber an, wo Sie Ihren Kurs halten und wir werden ihn lösen. Wenn Sie mit Eclipse arbeiten: Klicken Sie mit der rechten Maustaste auf Ihre Java-Klassendatei -> Eigenschaften -> "Pfad" (Sie können den Pfad hier kopieren) –

+0

@Joy: Sind Sie sicher, dass der 'TestJava' im Standardpaket ist? – boomz

5

Sie haben voll qualifizierten Namen der Klasse in Seitendirektive

<%@ page import="fully qualified name of the class" %> 
+0

Ja .. Ich habe importiert <% @ page import = "com.sampleServlet.sampleClass"%> –

+0

Also, was ist Ihre Frage? –

1

<% @ page import = "TestJava" %> Achten Sie darauf, zu schreiben, dass Ihre TestJava in dem Classpath ist

1

Stellen Sie sicher, über die @import wie andere gesagt

und dann Das Attribut "class" gibt die tatsächliche Klasse der Bean-Instanz an. mit <%@ page %>

In Ihrem Fall Import-Test in Ihrer jsp Seite wie diese

<jsp:useBean id="link" scope="application" class = "fullpackagename.TestJava" /> 
     <% TestJava t=new TestJava(); 
     t.test("Joy"); 
    %> 
2

Sie benötigen eine Klasse importieren.

<%@ page import="yourpackagename.Test" %> 

Wenn Sie mehrere Klassen importieren möchten, die sich in verschiedenen Paketen befinden, deklarieren Sie sie wie folgt.

<%@ page import="yourpackagename.Test,yourpackagename2.Test2" %> 

Ich schlage auch vor, dass Sie Ihre Testklasse außerhalb des Standardpakets platzieren und in ein anderes Paket einfügen.

0

Welche IDE verwenden Sie? Ich empfehle Ihnen, etwas wie Eclipse mit dem JSP-Plugin zu verwenden. Es wird mit einem roten Objekt unterstrichen, das Sie deklarieren möchten, dass es nicht kompiliert und importiert wurde.

Sie müssen durch die Art und Weise nicht Bohnen verwenden .. Sie können nur Java-Objekte erstellen und importieren sie