常見的幾種Bean使用方法
在實際使用中,有幾種常用的Bean,比如表單Bean、頁面Bean及共享Bean。
在共享Bean中主要包括請求Bean、會話Bean及應用程序Bean。
表單Bean
程序名稱:FormBean.java
package std;
import java.io.*;
public class FormBean implements Serializable
{
private int id = 0;
private String nickname = "";
public void setId(int id)
{
this.id = id;
}
public int getId()
{
return id;
}
public void setNickname(String name)
{
this.nickname = name;
}
public String getNickname()
{
return nickname;
}
}
這個Bean里面有兩個屬性,都是公開屬性,編寫JSP文件,使用這個Bean。
程序名稱:form.jsp
<FORM ACTION="" METHOD="POST">
id:<INPUT TYPE="TEXT" NAME="id"><BR>
nickname:<INPUT TYPE="TEXT" NAME="nickname"><BR>
<INPUT TYPE="SUBMIT" VALUE="SUBMIT"/>
</FORM>
<jsp:useBean id="st" class="std.FormBean"/>
<jsp:setProperty name="st" property="*"/>
<HR/>
<jsp:getPorperty name="st" property="id"/><BR>
<jsp:getPorperty name="st" property="nickname"/><BR>
這種方法利用表單中對應name的表單與的值去填充Bean里面相應的屬性,
id被填充到Bean的id屬性中,nickname被填充到Bean的nickname屬性。
打開時,讀取了id的值0,nickname默認為空。
也可以使用jsp:setProperty動作對每一個屬性設置值。
程序名稱: from1.jsp
<FORM ACTION="" METHOD="POST">
MYID:<INPUT TYPE="TEXT" NAME="MYID"><BR>
MYNICKNAME:<INPUT TYPE="TEXT" NAME="NICKNAME"><BR>
<INPUT TYPE="SUBMIT" VALUE="SUBMIT"/>
</FORM>
<jsp:useBean id="st" class="std.FormBean"/>
<jsp:setProperty name="st" property="id" param="MYID"/>
<jsp:setProperty name="st" property="id" param="MYNICKNAME"/>
<HR/>
<jsp:getProperty name="st" property="id"/><BR>
<jsp:getProperty name="st" property="nickname"/><BR>
在這里,html表單的表單域名稱與Bean中的屬性不一致,使用param來把html表單
的表單域名稱與Bean中的屬性對應起來。
表單Bean用來處理表單的填充。如果沒有請求參數(shù)和屬性對應(比如,修改FormBean,
增加一個sex屬性),則不采用任何動作,系統(tǒng)不會提供null作為屬性的值。
這意味著,表單Bean不需要一次填充完畢,可以只填充一部分屬性。
自動類型轉換并不能像手動類型,能夠防止不合法的值。盡管自動類型轉換很方便
(從請求中獲得的值為String類型,自動類型轉換保證了上面的String類型的id填充了
int類型的id屬性),很多開發(fā)人員避免使用自動轉換,選擇使用String類型去定義Bean
的每個屬性。
Bean的屬性名稱和請求參數(shù)大小寫敏感,書寫錯誤就無法調用任何一個動作。