jsp:useBean中使用type属性时报错

在尝试使用jsp:useBean标签时遇到了HTTP 500错误,问题源于仅设置id和type属性。分析表明,只设置type属性时,如果bean不存在,服务器不会自动创建,导致InstantiationException。而设置class属性或同时设置type和beanName属性,则能在bean不存在时创建新实例。因此,正确使用class或组合使用type和beanName是避免此类错误的关键。
摘要由CSDN通过智能技术生成

起因是一个学弟发现的问题,他按照jsp教材上的示例代码写了一份jsp文件,运行时却显示500错误。页面提示如下:

HTTP Status 500 – Internal Server Error

HTTP Status 500 – Internal Server Error


Type Exception Report

Message An exception occurred processing JSP page [/bean.jsp] at line [10]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: An exception occurred processing JSP page [/bean.jsp] at line [10]

8: <%@ page import="cc.hydrion.MyBean" %>
9: <%@ page contentType="text/html;charset=UTF-8" language="java" %>
10: <jsp:useBean id="myBean" scope="request" type="cc.hydrion.MyBean"/>
……

往下看,程序抛出了一个InstantiationException异常,提示说找不到我们要的bean:

java.lang.InstantiationException: bean myBean not found within scope

报错的第十行代码,我们使用了jsp:useBean标签,设置了id、type、scope属性。经过测试后发现,如果同时设置了id+class或是id+type+beanName属性,则能正常运行,只有id+type时会报错。那这几种组合的区别在哪呢?
因为服务器运行时是会把jsp文件转换成java文件的,我们可以在服务器的文件目录中找到转换后的java文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值