Jsp无法将类解析为特定类的类型?

时间:2013-12-23 20:47:03

标签: java jsp compiler-errors

这是一个非常奇怪的问题

我正在尝试创建类型为imLol的对象,我收到以下错误:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 13 in the jsp file: /yBillie.jsp
imLol cannot be resolved to a type
10: </head>
11: <body>
12:     <%
13:         imLol x = new imLol();
14:         List<Object[]> r = x.xgetNearCoupons();
15:         Users z = Users.getInstance();
16:         


An error occurred at line: 13 in the jsp file: /yBillie.jsp
imLol cannot be resolved to a type
10: </head>
11: <body>
12:     <%
13:         imLol x = new imLol();
14:         List<Object[]> r = x.xgetNearCoupons();
15:         Users z = Users.getInstance();
16:         

即。未找到班级imLol

但同时我可以使用同一类中的对象Users。发生了什么事?

yBillie.jsp:

<%@page import="java.util.List"%>
<%@page import="implementations.*" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <%
        imLol x = new imLol();
        List<Object[]> r = x.xgetNearCoupons();
        Users z = Users.getInstance();

    %>
</body>
</html>

imLol.java:

package implementations;

import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;

public class imLol {
    public List<Object[]> xgetNearCoupons() {
        Session s = Controller.getSessionFactroy().openSession();
        s.beginTransaction();
        String mylat = "33.207933", mylng = "35.570246";
        int R = 6371;
        SQLQuery query = s.createSQLQuery("SELECT * FROM Businesses WHERE CAST(business_id AS DECIMAL(10) = 1");
        List<Object[]> l = query.list();
        s.getTransaction().commit();
        return l;
    }
}

Eclipse图:

enter image description here

eclipse在imLol下面没有红线,但是当我将其更改为gjioarege时,它确实......这里有什么问题?

3 个答案:

答案 0 :(得分:0)

您可以检查类imLol是否在类路径中吗?可能在部署中丢失。以jar形式检入WEB-INF / classes或WEB-INF / lib。

答案 1 :(得分:0)

如您所见,您的项目上有一个红色感叹号。我敢打赌这是一个类路径问题,然后编译器失败。

答案 2 :(得分:0)

项目上有红色感叹号,表示它是构建路径的问题。

您可以按 ALT + SHIFT + Q 然后按 X 查看问题选项卡。
在问题选项卡中,您还将看到错误和警告。

要解决此问题,请按以下步骤操作

  1. 右键单击项目
  2. 构建路径----&gt;配置构建路径...
  3. 单击“库”选项卡
  4. JRE Web服务器库

    可能存在问题
    • 如果有任何问题,您将在该库下看到红叉。只需选择并删除即可。
    • 要重新添加,请点击按钮添加图书馆...
    • 如果您删除了JRE库,然后选择 JRE系统库,请单击 next
      • 选择工作区默认JRE
      • 点击完成
    • 如果您删除了Server库,然后选择 Server Runtime ,请单击 next
      • 选择服务器(例如Apache Tomcat)
      • 点击完成
    • 点击确定

    不要在JSP中编写scriptlet ,因为scriptlet不应该在JSP中使用超过十年。学习JSP ELJSTL,并使用servlet作为Java代码 见How to avoid Java Code in JSP-Files?