<jsp:setProperty>用來(lái)設(shè)置已經(jīng)實(shí)例化的Bean對(duì)象的屬性 第一種形式: <jps:setProperty name = "JavaBean實(shí)例名" property = "*"/> 該形式是設(shè)置Bean 屬性的快捷方式.在Bean 中屬性的名字,類型必須和request對(duì)象中的參數(shù)名稱相匹配。由于表單中傳過(guò)來(lái)的數(shù)據(jù)類型都是String 類型的,Jsp內(nèi)在機(jī)制會(huì)把這些參數(shù)轉(zhuǎn)化成Bean屬性對(duì)應(yīng)的類型。 property = "*"表示所有名字和Bean屬性名字匹配的請(qǐng)求參數(shù)都將被傳遞給相應(yīng)的屬性set方法。 第二種形式: <jsp:setProperty name = "JavaBean實(shí)例名" property = "JavaBean屬性名" /> 使用request對(duì)象中的一個(gè)參數(shù)值來(lái)指定Bean中的一個(gè)屬性值。在這個(gè)語(yǔ)法中,property指定Bean 的屬性名,而且Bean 屬性和request參數(shù)的名字應(yīng)相同。也就是說(shuō),如果在Bean 中有setUserName(String userName)方法,那么,propertyName的值就是"userName".這種形式靈活性較強(qiáng),可以有選擇的對(duì)Bean中的屬性賦值 第三種形式: <jsp:setProperty name = "JavaBean實(shí)例名" property = "JavaBean屬性名" value = "BeanValue"/> value用來(lái)指定Bean屬性的值。字符串?dāng)?shù)據(jù)會(huì)在目標(biāo)類中通過(guò)標(biāo)準(zhǔn)的valueOf方法自動(dòng)轉(zhuǎn)換成數(shù)字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如“true”)通過(guò)Boolean.valueOf轉(zhuǎn)換,int和Integer類型的屬性值(比如“42”)通過(guò)Integer.valueOf轉(zhuǎn)換。 第四種形式: <jsp:setProperty name = "JavaBean實(shí)例名" property = "propertyName" param = "request對(duì)象中的參數(shù)名" /> param指定用哪個(gè)請(qǐng)求參數(shù)作為Bean屬性的值。Bean 屬性和request參數(shù)的名字可以不同。如果當(dāng)前請(qǐng)求沒(méi)有參數(shù),則什么事情也不做,系統(tǒng)不會(huì)把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認(rèn)屬性值,只有當(dāng)請(qǐng)求參數(shù)明確指定了新值時(shí)才修改默認(rèn)屬性值。 例如,下面的代碼片斷表示:如果存在numItems請(qǐng)求參數(shù)的話,把numberOfItems屬性的值設(shè)置為請(qǐng)求參數(shù)numItems的值;否則什么也不做。 <jsp:setProperty name="orderBean" property="numberOfItems" param="numItems" /> 下面是一個(gè)簡(jiǎn)單的例子: //sampleBean.java package MyJavaBeanPackage; public class SampleBean2 { private String id; private String age; private String name; private String sex; private String addr; public SampleBean2() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public void setId(String id) { this.id = id; } public void setAge(String age) { this.age = age; } public String getId() { return id; } public String getAge() { return age; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } } //SampleBean.html <html> <head> <title>使用<jsp:getProperty>和<jsp:setProperty>標(biāo)記</title> </head> <body> <form name = "form1" action = "Sample2.jsp" method = "post"> <p align = "center">編號(hào) <input type = "text" name = "id"> </p> <p align = "center">姓名 <input type = "text" name = "name"> </p> <p align = "center">性別 <select name = "TheSex" id = "sex"> <option value = "男" selected>男</option> <option value = "女">女</option> </select> </p> <p align = "center">年齡 <input type = "text" name = "TheAge"> </p> <p align = "center"> <input type = "submit" value = "提交"> <input type = "reset" value = "重置"> </p> </form> </body> </html> //SampleBean.jsp <%@ page language="java" contentType = "text/html;charset = GBK" %> <jsp:useBean id = "sampleBean2" class = "MyJavaBeanPackage.SampleBean2"/> <html> <head> <title>在JavaBean中存放數(shù)據(jù)</title> </head> <body> <%--方法一 <jsp:setProperty name = "sampleBean2" property = "*" /> --%> <%-- 方法二 --%> <jsp:setProperty name = "sampleBean2" property = "id"/> <jsp:setProperty name = "sampleBean2" property = "name"/> <%--方法三 --%> <jsp:setProperty name = "sampleBean2" property = "addr" value = "洛陽(yáng)師范學(xué)院"/> <%-- 方法四 bean屬性的名字可以與request參數(shù)不同--%> <jsp:setProperty name = "sampleBean2" property = "sex" param = "TheSex"/> <jsp:setProperty name = "sampleBean2" property = "age" param = "TheAge"/> <center> 編號(hào):<jsp:getProperty name = "sampleBean2" property = "id"/><br> 姓名:<jsp:getProperty name = "sampleBean2" property = "name"/><br> 性別:<jsp:getProperty name = "sampleBean2" property = "sex"/><br> 年齡:<jsp:getProperty name = "sampleBean2" property = "age"/><br> 住址:<jsp:getProperty name = "sampleBean2" property = "addr"/><br> </center> </body> </html> //參考文獻(xiàn): 1<<從零開(kāi)始——JSP動(dòng)態(tài)網(wǎng)頁(yè)制作基礎(chǔ)培訓(xùn)教程-源代碼>> 2 http://hi.baidu.com/ffcheng1987/blog/item/44c71755925761c7b645ae2c.html |
|