以下是该方案:
在JSP文件中,我有:
其中,这个bean是子类Bean,如下所示:
public class NonpUserBean extends NonpRegBean {
此方案导致RequestDispathcer.forward尝试转到“错误”页面时出现问题。
然而,
<jsp:useBean id="nonpRegBean" class="com.manavmisra.nonprofit.NonpRegBean"
scope="request"/>
工作正常。
换句话说,当使用“子类”Bean时,请求范围崩溃了。但是,请求范围,在完全相同的情况下,如果我使用“超类”Bean。
为什么?
答案 0 :(得分:0)
如果nonpRegBean
实际上是NonpUserBean
对象,则无法从com.manavmisra.nonprofit.NonpRegBean
类实例化它。 NonpRegBean
可以是type
属性指定的引用类型,但不能是class
属性。我假设bean是根据规范定义的。
class
属性指定bean实例的实际类。type
属性指定处理实例的Java类型,它可以是bean类的超类或实现的接口如果在指定的范围内还没有指定id的属性,那么useBean
会尝试创建一个。它只能做到
如果它知道要实例化的类。如果已经存在匹配属性,则useBean
会尝试使用它;它将被转换为type
指定的类型(如果提供),或者转换为class
指定的类型。
检查请求范围中是否存在名为nonpRegBean
的任何属性。