形式:
<jsp:useBean id="" beanName="" class="" scope="page" type=""></jsp:useBean>
其中:
1. id:指定JavaBean的名字,与servlet或jsp或其他方式传递到该jsp页面的对象名称相同。例如:在servlet中有:
Person person = new Person() ;
request.setAttribute("abc" , person) ;
则id="abc"
2. class:javaBean的具体名字,如com.test.Person
3. beanName:使用java.beans.Beans.instantiate方法实例化beanName属性指定的类或序列化模板对应的Bean对象,赋予JavaBean对象type属性指定的数据类型。Beans.instantiate方法会检查beanName属性指定的名称是类名称还是序列化模板的名称。假如该JavaBean对象已被序列化,则Beans.instantiate使用类加载器读取序列化的内容,更多信息可参考JavaBeans.
beanName属性值要么是一个完整类名,要么是一个可以转化为完整类名的表达式。用来传给Beans.instantiate方法。type属性值可和beanName属性值同,或为其超类、接口。
beanName和type属性所指定的包名,类名均大小写敏感。
4. scope:scope="page | request | session | application"
Bean对象存在的作用范围,默认值为 page. 不同作用域解释如下:
1) page: 你可以在<jsp:useBean>元素所在JSP页面或其静态包含页面使用该JavaBean对象,直到该页面发送响应回客户端或跳转(forwards)至其它页面。
2) request: 你可以在处理同一个请求的任意一个页面使用该JavaBean对象,直到该页面发送响应回客户端或产生新的请求。你可以使用request对象访问该JavaBean对象,示例:
request.getAttribute(beanInstanceName).
3) session: 你可以在同一次会话的任意一个页面使用该JavaBean对象,该JavaBean对象在整个会话期间一直存在。使用<jsp:useBean/>创建JavaBean对象的页面的<%@page %>指令元素的session属性值必须设置为true;
4) application: 你可以在创建该JavaBean对象的同一个应用的任意一个页面使用该JavaBean对象,该JavaBean对象在整个应用期间一直存在。应用中任意一个页面均可使用它。
5. type:用来指定该Bean对象的数据类型,假如既没有指定 class 或 beanBean, 没有Bean对象能被实例化。包和类名称大小写敏感。