2013-03-30 20 views
10

我已經在Eclipse和Java文件中編寫了一個示例JSP文件,並試圖在JSP內部調用Java類,但它不起作用。的JAVA文件的代碼如下:如何在JSP scriptlet中使用Java類?錯誤說該類不能解析爲類型

TestJava.jva

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

的Javafile位於src文件夾。我的JSP文件test.jsp如下:

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> 

這是給錯誤爲 「TestJava不能被解析爲一個類型」。我已經研究過堆棧溢出中的其他相關帖子,但這些方法也不起作用。作爲JSP新手,我無法理解如何解決這個錯誤。所以我問是否有人可以幫我解決這個問題。

謝謝。

+0

我認爲TestJava應該是一個託管bean。我不是100%確定的。 –

+0

你應該在'jsp'文件中導入你的java類! – boomz

+0

@KorayTugay託管bean的概念適用於JSF AFAIK,但它不適用於普通的JSP/Servlet開發。 –

回答

7

爲了在java中使用類對象,您需要先導入類。 與jsp中的腳本幾乎相同,在這裏您可以通過<%@ page %> scriplet標籤導入它。

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

+0

我已經把類的名稱寫爲「<%@ page import =」TestJava「%>」。但仍顯示「TestJava無法解決」。 – Joy

+0

也指定包裝關係。提供一些關於你在哪裏舉辦班級的更多信息,我們會解決它。如果你使用eclipse:右鍵單擊你的java classfile - > properties - >「path」(你可以在這裏複製路徑) –

+0

@Joy:你確定'TestJava'是默認包嗎? – boomz

5

你必須在頁面指令來寫你的類的全名

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

是的..我高度導入<%@頁導入=「com.sampleServlet.sampleClass」%> –

+0

所以最新是你的問題? –

1

<%@頁面進口= 「TestJava」 %> 確保您TestJava在類路徑

1

確保有關@import的人說

,然後「class」屬性指定了bean實例的實際類。

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

你需要使用<%@ page %>

你的情況,在這樣的JSP頁面,導入測試導入類。

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

如果要導入不同包中的多個類,請聲明它們是這樣的。另外,我強烈建議你把你的Test類放在默認包之外,並把它放在另一個包中。

0

您正在使用哪種IDE?我建議你在JSP插件中使用類似Eclipse的東西。它會用一個紅色的對象來強調你試圖聲明沒有被編譯和導入的對象。

您不必使用bean ..您可以創建java對象並導入它們

相關問題