<jsp:useBean>概要介绍

来源:互联网 发布:赵薇被处罚知乎 编辑:程序博客网 时间:2024/06/05 18:36

<jsp:useBean>概要介绍

<jsp:useBean>动作用于实例化JavaBean,或者定位一个已经存在的JavaBean实例,并把实例的引用赋给一个变量。下面是使用<jsp:useBean>动作元素的一个例子:

<jsp:useBean id="user" scope="session" class="com.example.userBean" />

<jsp:useBean>动作元素的语法如下:

<jsp:useBean id="name" scope="page|request|session|application" typeSpec />
其中,typeSpec定义如下:
typeSpec ::= class="className" |             class="className" type="typeName" |             type="typeName" class="className" |             beanName="beanName" type="typeName" |             type="typeName" beanName="beanName" |             type="typeName"

<jsp:useBean>元素各属性的含义如下:

  • id
用于标识JavaBean实例的名字,同时,该名字也是声明的脚本变量的名字,并被初始化为JavaBean实例的引用。要注意的是,指定的名字是区分大小写的,并遵照Java语言变量命名的约定。

  • scope
指定一个范围,在这个范围内,JavaBean实例的引用是可用的,实际上也是指定JavaBean实例的生命周期。可能的取值有:page、request、session和application,默认的值是page。

  • class
指定JavaBean对象的完整的限定类名。

  • beanName
指定Bean的名字。该名字被提供给java.beans.Beans类的instantiate()方法,来实例化一个JavaBean。

  • type
指定定义的脚本变量的类型。这个类型可以是Bean类本身,它的父类,或者由Bean类实现的接口。该属性默认的值和class属性的值一样。

<jsp:useBean>动作的行为如下:

(1) JSP窗口在<jsp:useBean>元素指定的范围中查找指定id的JavaBean对象。

(2) 如果找到相应的对象,并且在元素中指定了type属性,那么JSP窗口会试图把找到的对象转换为指定的type。如果类型转换失败,则抛出java.lang.ClassCastException异常。

(3) 如果没有在指定的范围中找到对象,并且在元素中没有指定class或beanName属性,则会抛出java.lang.InstantiationException异常。

(4) 如果没有在指定的范围中找到对象,并且在元素中指定了class属性,则利用这个类创建一个新的对象,将这个对象的引用赋值给由属性id所指定的名字的变量,并将这个对象保存到属性scope指定的范围中(在调用setAttribute()方法时,以属性id指定的名字作为属性名)。

(5) 如果没有在指定的范围中找到对象,并且在元素中指定了beanName属性,则用beanName作为参数调用java.beans.Beans类中的instantiate()方法。如果这个方法执行成功,则把新创建的对象的引用赋值给由属性id所指定的名字的变量,并将这个对象保存到属性scope指定的范围中(在调用setAttribute()方法时,以属性id指定的名字作为属性名)。

原创粉丝点击