一尘不染

java.lang.InstantiationException:在范围内找不到bean [name]

jsp

我现在正在学习如何使用jsp和bean,并且无法理解我遇到的问题。

我正在尝试创建一个像这样的bean:…

并得到错误:

java.lang.InstantiationException:在范围内找不到bean预留

我在网上四处看看,大多数人似乎建议使用class =“ …”而不是type =“
…”或使用import语句。我已经在做前者,并尝试过后者…有什么想法吗?

这是bean:

package homework10;

public class Reservation {

private int groupSize;
private String status;
private double cost;
private boolean triedAndFailed;

public Reservation(){      
}

public void setGroupSize(int gs)
{
    groupSize = gs;
}

public int getGroupSize()
{
    return groupSize;
}
public void setStatus(String str)
{
    this.status = str;
}

public String getStatus()
{
    return status;
}

public void setCost(double cost)
{
    this.cost = cost;
}

public double getCost()
{
    return cost;
}

public void setTriedAndFailed(boolean bool)
{
    this.triedAndFailed = bool;
}

public boolean isTriedAndFailed()
{
    return triedAndFailed;
}

}

这是jsp页面的开始:

<head>
    <!--<script type="text/javascript" src="functions8.js">
    </script>-->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>BHC Calculator-HTML-validation + Servlet Version</title>
    <jsp:useBean id = "reservation" class = "homework10.Reservation" scope = "session" />
</head>

提前致谢!


阅读 444

收藏
2020-06-08

共1个答案

一尘不染

java.lang.InstantiationException

从根本上讲,这基本上意味着普通的Java术语,即以下结构

import homework10.Reservation;

// ...

Reservation reservation = new Reservation();

失败了。

造成这种情况的原因很多:

  1. 运行时类路径中缺少类。
  2. 找不到类定义。
  3. 该课程不是公开的。
  4. 类没有公共的默认构造函数。
  5. 公共默认构造函数中的代码引发了异常。

根据到目前为止提供的代码,并假设您100%确信正在运行自己认为正在运行的代码,那么这可能仅是原因1或原因2。该类是公共的,并且具有公共的默认构造函数,该构造函数基本上不执行任何操作。所以#3,#4和#5可能会被划伤。

要解决可能的原因1,请确保该类文件在path中的webapp部署中存在
/WEB-INF/classes/homework10/Reservation.class。要解决可能的原因2,您还应该确保在保留包结构的同时,以正确的方式编译了该类。因此,当您不使用像Eclipse这样的IDE时,但是在命令提示符下摆弄了低级代码时,则应确保在编译类时包括该包。


至于您发现的可能解决方案,

而且大多数人似乎建议使用class =“ …”而不是type =“ …”

没错 要了解更多信息,请转至以下答案:javax.servlet.ServletException:在范围内未找到bean[name]但是,这显然不是您的特定情况的原因,因为它显然没有解决问题。

或使用导入语句

这完全没有道理。那些人把 脚本弄
糊涂了。应尽量避免使用它们。该<jsp:useBean>还,实际上,但是这是一个不同的故事。

2020-06-08