如果您为您的JavaBean定义了一个抽象类,并让所有的JavaBean实现该抽象类,则在使用<jsp:useBean>时,可以使用type属性来指定抽象类型,而使用class属性来指定实际的实现类。 举例来说,假设您定义了一个Person抽象类:
package onlyfun.caterpillar; 然后您有定义一个Student类实现了Person类:
package onlyfun.caterpillar; 在使用<jsp:useBean>时,使用type来指定抽象类型,例如: <jsp:useBean id="person" type="onlyfun.caterpillar.Person" class="onlyfun.caterpillar.Student"/>
则实际上在转译为Servlet时,就会产生如下的程序码: ...
onlyfun.caterpillar.Person person = null; if(person == null) person = new onlyfun.caterpillar.Student(); .... type属性的设定可以是一个抽象类,也可以是一个接口,如果您只设定type而没有设定class,则您必须确定在某个范围中已经存在您所要的Bean对象,否则会发生InstantiationException异常。 |