【摘要】:scope指定一个范围,在这个范围内JavaBean 实例的引用是可用的,实际上也是指定JavaBean 实例的作用范围。可取的值有page、request、session 和application,默认的值是page。class指定JavaBean 对象的完整的限定类名。beanName指定Bean 的名字。例6.2:的使用。在指定的scope 中查找名为mycircle 的JavaBean 实例。其实要了解的执行流程,只要看一下circle.jsp 最终生成的Servlet即可。
该动作用来装载一个将在JSP 页面中使用的JavaBean。这个功能非常有用,因为它使得我们既可以发挥Java 组件重用的优势,同时也避免了损失JSP 区别于Servlet 的方便性。<jsp:useBean>动作的语法为:
<jsp:useBean>动作元素各属性的含义如下:
➢ id
用于标识JavaBean 实例的名称。同时,该名称也是声明的脚本变量的名称,并被初始化为JavaBean 实例的引用。
指定的名字是区分大小写的,并遵循Java 语言变量命名的约定。
➢ scope
指定一个范围,在这个范围内JavaBean 实例的引用是可用的,实际上也是指定JavaBean 实例的作用范围。可取的值有page、request、session 和application,默认的值是page。其实scope 指定的范围就是前面章节介绍的4 个作用域对象的范围。
➢ class
指定JavaBean 对象的完整的限定类名。
➢ beanName
指定Bean 的名字。该名字被提供给java.beans.Beans 类的instantiate()方法,来实例化一个JavaBean。大家如果要了解更多的信息,请参考JavaBean 规范或instantiate()方法的API 文档。
➢ type
指定定义的脚本变量的类型。这个类型可以是Bean 类本身、它的父类或者由Bean 类实现的接口。该属性默认的值和class 属性的值一样。
下面来看一个JSP 中使用JavaBean 的实例。
例6.2:<jsp:useBean>的使用。(www.chuimin.cn)
假定要定义一个计算圆面积和周长的JSP 页面,为了完成此功能,首先建立一个代表圆的JavaBean:Circle.java,然后在circle.jsp 中调用Circle。
Circle.java 的代码如下:
circle.jsp 的代码如下:
上述<jsp:useBean>的执行过程:
(1)根据class 属性指定的类型定义一个局部变量mycircle(即id 属性的值),并初始为null。
(2)在指定的scope 中查找名为mycircle 的JavaBean 实例。
(3)若找到,则将其强转为class 属性指定的类型,并将其引用指向该mycircle变量。若未找到,则实例化一个class 属性指定类型的对象,并将对象的引用指向mycircle 变量,然后将对象以名称“mycircle”存入scope 指定的作用域中。
其实要了解<jsp:useBean>的执行流程,只要看一下circle.jsp 最终生成的Servlet即可。例如上例中使用的<jsp:useBean>动作部分在JSP 对应的Servlet 中的代码:
运行circle.jsp,效果如图6.1 所示。
图6.1 使用<jsp:useBean>
相关推荐