<jsp:useBean> 標記的beanName 屬性:指定序列化Bean的名稱
怎麼理解?
最好舉個例子。//===========================================================================================可用於儲存的bean:
package test;
import java.io.*;
public class FirstSaveBean implements Serializable{
private String name;
public FirstSaveBean(){
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
相關的jsp頁面:
<%@page import= "java.io.* "%>
<jsp:useBean type= "test.FirstSaveBean " id= "tb " beanName= "test.FirstSaveBean "/>
<jsp:setProperty name= "tb " property= "name " value= "KillMM "/>
下面開始儲存對象tb到/WEB-INF/classes/test/TT.ser,注意尾碼名。
<%
String p = "/WEB-INF/classes/test/TT.ser ";
p = application.getRealPath(p);
FileOutputStream fos = new FileOutputStream(p);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(tb);
oos.close();
%>
開始使用對象tb1從TT.ser中擷取對象。
<jsp:useBean type= "test.FirstSaveBean " id= "tb1 " beanName= "test.TT "/>
<%=tb1.getName()%>//===========================================================================================你是說 <jsp:useBean> 的id屬性?舉例說:
<jsp:useBean id= "myBean " class= "MyPackage.MyBean " scope= "session "/>
這句話大致上相當於
<%
MyPackage.MyBean myBean = new MyPackage.MyBean();
%>
稍有不同的地方是:最後一個scope屬性決定了Bean的生存期範圍。具體的說,處理這個tag時,如果在指定的scope對象,如這裡的session,那裡找到了同id同類的Bean執行個體,實際上就會在頁面後面的部分使用這個Bean執行個體,如果沒有找到,那麼就會建立一個Bean執行個體,並註冊到指定的scope對象,如這裡的session,供這個scope的其他JSP頁面或者請求使用。
所謂 "序列化Bean的名稱 ",多少翻譯得有點拗口,實際上他想說的是:JavaBean預設是可序列化的,或者說實現了Serializable介面,所以說成是序列化Bean,而這裡這個id屬性就是用來指明這個Bean的名稱的。
明白了嗎?
//=============================================================================================樓上答非所問。。。不過後面部分對序列化Bean的名稱解釋是對的。