使用bean继承时,为什么请求范围会中断?

时间:2013-06-26 05:36:01

标签: jsp javabeans

以下是该方案:

在JSP文件中,我有:

其中,这个bean是子类Bean,如下所示:

public class NonpUserBean extends NonpRegBean {

此方案导致RequestDispathcer.forward尝试转到“错误”页面时出现问题。

然而,

<jsp:useBean id="nonpRegBean" class="com.manavmisra.nonprofit.NonpRegBean" 
   scope="request"/>

工作正常。

换句话说,当使用“子类”Bean时,请求范围崩溃了。但是,请求范围,在完全相同的情况下,如果我使用“超类”Bean。

为什么?

1 个答案:

答案 0 :(得分:0)

如果nonpRegBean实际上是NonpUserBean对象,则无法从com.manavmisra.nonprofit.NonpRegBean类实例化它。 NonpRegBean可以是type属性指定的引用类型,但不能是class属性。我假设bean是根据规范定义的。

class属性指定bean实例的实际类。type属性指定处理实例的Java类型,它可以是bean类的超类或实现的接口如果在指定的范围内还没有指定id的属性,那么useBean会尝试创建一个。它只能做到 如果它知道要实例化的类。如果已经存在匹配属性,则useBean会尝试使用它;它将被转换为type指定的类型(如果提供),或者转换为class指定的类型。

检查请求范围中是否存在名为nonpRegBean的任何属性。