【问题标题】:How to use a Java class in JSP scriptlet? Error says the class cannot be resolved to a type如何在 JSP scriptlet 中使用 Java 类?错误说无法将类解析为类型
【发布时间】:2013-03-20 23:43:45
【问题描述】:

我在 Eclipse 中编写了一个示例 JSP 文件和一个 Java 文件,并试图在我的 JSP 中调用 Java 类,但它不起作用。 JAVA文件的代码如下:

TestJava.jva

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

Java 文件位于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 无法解析为类型”而出现错误。我研究过 Stack Overflow 中的其他相关帖子,但这些方法也没有奏效。作为 JSP 的新手,我无法理解如何修复该错误。所以我问是否有人可以帮助我解决这个问题。

谢谢。

【问题讨论】:

  • 我认为TestJava 应该是一个托管bean。我不是 100% 确定。
  • 你应该在jsp文件中导入你的java类!
  • @KorayTugay 托管 bean 概念适用于 JSF AFAIK,但不适用于普通 JSP/Servlet 开发。
  • 很高兴知道您有答案,但您必须记住不鼓励使用 scriptlet。请参阅How to avoid Java Code in JSP-Files? 了解更多信息。
  • @LuiggiMendoza 谢谢您,对于错误的信息,我们深表歉意!

标签: java jsp compiler-errors cannot-find-symbol


【解决方案1】:

为了在java中使用类对象,你需要先导入类。 与jsp中的scriplet差不多,这里通过&lt;%@ page %&gt;scriplet标签导入。

&lt;%@ page import="your.class*" %&gt;

【讨论】:

  • 我已经把类的名字放在你说的“”上。但它仍然显示“无法解析TestJava”。
  • 同时指定包关系。提供更多关于你在哪里上课的信息,我们会解决的。如果您使用 Eclipse:右键单击您的 java 类文件 -> 属性 -> “路径”(您可以在此处复制路径)
  • @Joy:你确定TestJava 在默认包中吗?
  • 我已将我的 TestJava 类放在 HelloWorld/src 文件夹中。
  • 有点不清楚,你有包还是只有src文件夹?创建另一个临时 java 类并在那里添加TestJava t=new TestJava();。 Eclipse 会建议导入一个类或自动导入。然后你会看到它在jsp中应该是什么样子的。
【解决方案2】:

你必须在页面指令中写下你的类的完全限定名

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

【讨论】:

  • 是的.. 我已经导入了
  • 那么你的问题是什么?
【解决方案3】:

确保您的 TestJava 在类路径中

【讨论】:

    【解决方案4】:

    如其他人所说,确保@import

    然后“class”属性指定bean实例的实际类。

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

    【讨论】:

      【解决方案5】:

      您需要使用&lt;%@ page %&gt; 导入您的课程

      在你的情况下,像这样在你的jsp页面中导入Test。

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

      如果要导入不同包中的多个类,请像这样声明它们。

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

      另外,我强烈建议您将您的 Test 类放在默认包之外,并将其放在另一个包中。

      【讨论】:

        【解决方案6】:

        您使用的是哪个 IDE?我建议您使用带有 JSP 插件的 Eclipse 之类的东西。它将用红色下划线显示您尝试声明的尚未编译和导入的对象。

        顺便说一句,你不必使用bean..你可以创建java对象并导入它们

        【讨论】:

          猜你喜欢
          • 2020-03-27
          • 1970-01-01
          • 1970-01-01
          • 2013-07-17
          • 1970-01-01
          • 1970-01-01
          • 2021-01-26
          • 2012-09-12
          • 1970-01-01
          相关资源
          最近更新 更多