<jsp:setProperty>
設(shè)置Bean中的屬性值.
JSP語(yǔ)法
<jsp:setProperty
name="beanInstanceName"
{
property= "*" |
property="propertyName" [ param="parameterName" ] |
property="propertyName" value="{string | <%= expression %>}"
}
/>
例子
<jsp:setProperty name="mybean" property="*" />
<jsp:setProperty name="mybean" property="username" />
<jsp:setProperty name="mybean" property="username" value="Steve" />
描述
<jsp:setProperty>元素使用Bean給定的setter方法,在Bean中設(shè)置一個(gè)或多個(gè)屬性值。你在使用這個(gè)元素之前必須得使用<jsp:useBean>聲明此Bean.因?yàn)椋?lt;jsp:useBean>和<jsp:setProperty>是聯(lián)系在一起的,同時(shí)這他們使用的Bean實(shí)例的名字也應(yīng)當(dāng)相匹配(就是說(shuō),在<jsp:setProperty>中的name的值應(yīng)當(dāng)和<jsp:useBean>中id的值相同)
你能使用多種方法利用<jsp:setProperty>來(lái)設(shè)定屬性值 :
通過(guò)用戶輸入的所有值(被做為參數(shù)儲(chǔ)存中request對(duì)象中)來(lái)匹配Bean中的屬性
通過(guò)用戶輸入的指定的值來(lái)匹配Bean中指定的屬性
在運(yùn)行時(shí)使用一個(gè)表達(dá)式來(lái)匹配Bean的屬性
每一種設(shè)定屬性值的方法都有其特定的語(yǔ)法,下面我們會(huì)來(lái)講解
屬性及其用法
name="beanInstanceName"
表示已經(jīng)在<jsp:useBean>中創(chuàng)建的Bean實(shí)例的名字.
property="*"
儲(chǔ)存用戶在Jsp輸入的所有值,用于匹配Bean中的屬性。在Bean中的屬性的名字必須和request對(duì)象中的參數(shù)名一致.
從客戶傳到服器上的參數(shù)值一般都是字符類(lèi)型 ,這些字符串為了能夠在Bean中匹配就必須轉(zhuǎn)換成其它的類(lèi)型,下面的表中列出了Bean屬性的類(lèi)型以及他們的轉(zhuǎn)換方法.
把字符串轉(zhuǎn)化為其它類(lèi)型的方法. Property 類(lèi)型
方法
boolean or Boolean
java.lang.Boolean.valueOf(String)
byte or Byte
java.lang.Byte.valueOf(String)
char or Character
java.lang.Character.valueOf(String)
double or Double
java.lang.Double.valueOf(String)
integer or Integer
java.lang.Integer.valueOf(String)
float or Float
java.lang.Float.valueOf(String)
long or Long
java.lang.Long.valueOf(String)
如果request對(duì)象的參數(shù)值中有空值,那么對(duì)應(yīng)的Bean屬性將不會(huì)設(shè)定任何值。同樣的,如果Bean中有一個(gè)屬性沒(méi)有與之對(duì)應(yīng)的Request參數(shù)值,那么這個(gè)屬性同樣也不會(huì)設(shè)定.
property="propertyName" [ param="parameterName" ]
使用request中的一個(gè)參數(shù)值來(lái)指定Bean中的一個(gè)屬性值。在這個(gè)語(yǔ)法中,property指定Bean的屬性名,param指定request中的參數(shù)名.
如果bean屬性和request參數(shù)的名字不同,那么你就必須得指定property和param ,如果他們同名,那么你就只需要指明property就行了.
如查參數(shù)值為空(或未初始化),對(duì)應(yīng)的Bean屬性不被設(shè)定.
property="propertyName" value="{string | <%= expression %>}"
使用指定的值來(lái)設(shè)定Bean屬性。這個(gè)值可以是字符串,也可以是表達(dá)式。如果這個(gè)字符串,那么它就會(huì)被轉(zhuǎn)換成Bean屬性的類(lèi)型(查看上面的表).如果它是一個(gè)表達(dá)式,那么它類(lèi)型就必須和它將要設(shè)定的屬性值的類(lèi)型一致。
如果參數(shù)值為空,那么對(duì)應(yīng)的屬性值也不會(huì)被設(shè)定。另外,你不能在一個(gè)<jsp:setProperty>中同時(shí)使用param和value
技巧
如果你使用了property="*",那么Bean的屬性沒(méi)有必要按Html表單中的順序排序