JSP jsp:setProperty:屬性值設定標籤

2020-07-16 10:04:53
JSP 中的 <jsp:setProperty> 標籤通常情況下與 <jsp:useBean> 標籤一起使用,它將呼叫 Bean 中的 setXXX() 方法將請求中的引數賦值給由 <jsp:useBean> 標籤建立的 JavaBean 中的對應的簡單屬性或索引屬性。

語法:

<jsp:setProperty
name="Bean範例名"
{
property="*"|
property="propertyName"|
property="propertyName"param="parameterName"|
property="propertyName"value="值"
}/>

<jsp:setProperty> 標籤中各屬性的簡要說明如表所示。

屬  性 說  明
name 必須存在的屬性,用來指定一個Bean範例
property 必須存在的屬性,可選值為或指定Bean中的屬性。當取值為時,則request請求
中的所有引數的值將被一一賦給Bean中與引數具有相同名字的屬性:若取值為Bean中的屬性, 
則只會將request請求中與該屬性同名的一個引數的值賦給這個Bean屬性,
若此時指定了 param 屬性,那麼請求中引數的名稱與Bean屬性名可以不同
param 用於指定請求中的引數,通過該屬性指定的引數的值將被賦給由property屬性指定的Bean 屬性
value 用來指定一個值,它可以是表示具體值的表示式。通常與property屬性一起使用,
表示將指 定的值賦給指定的Bean屬性。value屬性不能與param屬性一起使用

property 屬性取值為“*”時,則 request 請求中的所有引數的值將被一一賦給 Bean 中與引數具有相同名字的屬性。如果請求中存在空值的引數,那麼 Bean 中對應的屬性將不會被賦值為 Null;如果 Bean 中存在一個屬性,但請求中沒有與之對應的引數,那麼該屬性同樣不會被賦值為 Null。這兩種情況下的 Bean 屬性都會保留原來或預設的值。

這種使用方法要求請求中引數的名稱和型別必須與 Bean 中屬性的名稱和型別一致。但由於通過表單傳遞的引數都是 String 型別的,所以 JSP 會自動將這些引數轉換為 Bean 中對應屬性的型別。下表列出了 JSP 自動將 String 型別轉換為其他型別時所呼叫的方法。

其他型別 轉換方法
boolean java.lang.Boolean.valueORString).booleanValue()
Boolean java Jang.Boolcan.valueOf ⑸ ring)
byte java.lang.Bytc.valucOflStringJ.bjtcValucO
Byte java.lang.Bytc.valucOf|String)
double java.lang.Doublc.valucOflString).doublcValuc()
Double java.lang.Double.valueOfl( String)
ini java.lang. Integer. valueOf^String).intValue()
Integer java.lang. Integer. valueOf^String)
float java. lang. Float .valucOnString). float Value();
Float java.Iang.Float.valucORString)
long java. lang. Lx)ng. valueOf( Stri ng). longValuef)
Long java.Iang.Long.valueOftString)

範例1

在不存在 Body 標籤的頁面中應用 <jsp:useBean> 和 <jsp:setProperty> 標籤為 Bean 中的內容進行賦值,具體程式碼如下:
<jsp:useBean id="logonimg" class="com.javabean.Image" scope="request"/>
<jsp:setProperty name="logonimg" property="x" param="logon.x"/>
<jsp:setProperty name="logonimg" property="y" param="logon.y"/>

範例2

在 Body 標籤內應用 <jsp:setProperty> 和 <jsp:useBean> 標籤為 Bean 中的內容賦值,具體程式碼如下:
<jsp:useBean id="logonimg" class="com.javabean.Image" scope="request">
  <jsp:setProperty name="logonimg" property="x" param="logon.x"/>
  <jsp:setProperty name="logonimg" property="y" param="logon.y"/>
</jsp:useBean>