package onlyfun.caterpillar; public abstract class Person { private String name; public void setName(String name) { this.name = name; } public String getName() { return name; } }然后您有定义一个Student类别实作了Person类别: Student.java
package onlyfun.caterpillar; public class Student extends Person { private int number; public void setNumber(int number) { this.number = number; } public int getNumber() { return number; } }在使用<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例外。