jsp:useBean jsp:useBean標簽屬于JSP的動作指令,用來裝載一個將在JSP頁面中使用的JavaBean。jsp:useBean動作最簡單的語法為: 示例: JavaBean: <strong>package</strong> test; <strong>public</strong> <strong>class</strong> Stu { <strong>private</strong> String sno; <strong>public</strong> String getName() { <strong>return</strong> name; } <strong>public</strong> <strong>void</strong> setName(String name) { <strong>this</strong>.name = name; } } 在JSP中: <jsp:useBean id="user" class="test.Stu" scope="request”/> <jsp:setProperty property="name" value="tom" name="user"/> <jsp:getProperty property="name" name="user"/> 代碼解釋: 上述例子將會用一個創(chuàng)建一個Stu類的實例,并且把該實例存儲在屬性中,該屬性將在該請求的生命周期內(nèi)有效。它可以在所有被包含或者從主頁面(最先接收請求的頁面)轉(zhuǎn)向到的JSP頁之間共享。 scope屬性可以是request, page, session or application,它有以下用意:
jsp:setProperty 用來設(shè)置已經(jīng)實例化的Bean對象的屬性,有兩種用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示: 此時,不管jsp:useBean是找到了一個現(xiàn)有的Bean,還是新創(chuàng)建了一個Bean實例,jsp:setProperty都會執(zhí)行。 第二種用法是把jsp:setProperty放入jsp:useBean元素的內(nèi)部,如下所示: 此時,jsp:setProperty只有在新建Bean實例時才會執(zhí)行,如果是使用現(xiàn)有實例則不執(zhí)行jsp:setProperty。 jsp:setProperty動作有下面四個屬性:name, property, value, param name屬性是必需的,表示JSP頁面中的JavaBean標識名稱,即要設(shè)置哪個bean的屬性, property屬性是必需的,表示要設(shè)置bean的哪個屬性,如果設(shè)置property的值為”*”,則表示所有名字和Bean屬性名字匹配的請求參數(shù)都將被傳遞給相應的屬性set方法。 value屬性是可選的,指定屬性的值,字符串數(shù)據(jù)會自動通過標準的valueOf方法進行類型轉(zhuǎn)換。 param是可選的,指定哪個請求參數(shù)作為Bean屬性的值,如果當前請求沒有參數(shù),則什么事情也不做,系統(tǒng)不會把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認屬性值,只有當請求參數(shù)明確指定了新值時才修改默認屬性值。 value和param不能同時使用。 如果同時省略value和param,其效果相當于提供一個param且其值等于property的值。進一步利用這種借助請求參數(shù)和屬性名字相同進行自動賦值的思想,你還可以在property(Bean屬性的名字)中指定“*”,然后省略value和param。此時,服務器會查看所有的Bean屬性和請求參數(shù),如果兩者名字相同則自動賦值。 jsp:getProperty 用來提取指定Bean屬性的值,轉(zhuǎn)換成字符串,然后輸出。jsp:getProperty有兩個必需的屬性,即:name,表示Bean的名字;property,表示要提取哪個屬性的值。 |
|