Jsp中JavaBean的用法

首先我們有兩種方式可以引入JavaBean:

第一種,在jsp文件頭部引入包或者類:


第二種,是在<body>標籤裏面使用<jsp:useBean />來引入:


id相當於對象,直接可以調用方法,這裏是使用java的反射原理去實例化的對象(根據完整包.類名去實例化對象),後面的設置屬性也是通過反射原理去設置屬性(根據屬性名去找到相關的setter方法),那麼屬性名是從哪來的呢?屬性名就是form表單提交的input標籤的name屬性值:


property屬性爲“*”表示自動根據form的input標籤的name屬性的值匹配,因爲定義的Person類裏面有setName()和setAge()方法,所以纔會自動匹配上,注意是set後面的值和name屬性值一致,而不是Person裏面的變量,這裏的變量是mName和mAge,很明顯不一致。如果找不到一致的那麼就會出現null或者0。


<jsp:setProperty />標籤的name屬性必須和需要賦值的useBean標籤的id屬性值一致。

property除了可以是“*”自動賦值之外,還可以指定要賦值的屬性,比如property=“name”,這樣只會給name複製,而得到的age屬性的值會是0;

還可以指定param屬性,比如property=“name” param=“age”,他會根據“name”去尋找相關的setter方法,然後把form表單中input標籤的name屬性值爲“age”的輸入數據賦過去,這樣mName變量的值就會變成輸入的age的值。

還有一種是直接指定變量值,property=“name” value=“我是誰”。


當然,有set屬性就有get屬性,<jsp:getProperty />標籤就是利用反射找到getter方法來獲取屬性值的:



可以看到,<jsp:useBean />有個scope屬性,它的值同樣有page、request、session、application四種,表示JavaBean的四種屬性範圍,分別代表着本頁有效、一次服務器端請求(服務器端跳轉)有效、未關閉瀏覽器有效、未重啓服務器有效。


如何刪除JavaBean?

使用pageContext.removeAttribute(JavaBean名稱)、request.removeAttribute(JavaBean名稱)、session.removeAttribute(JavaBean名稱)、application.removeAttribute(JavaBean名稱)分別刪除不同屬性範圍內的JavaBean。

注意,即使是重複使用,也要重新聲明<jsp:useBean/>標籤,同一個id,同樣的scope和class,只不過這個對象的值被保存了下來。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章