一、 語法:
<jsp:useBean
id="beanInstanceName"
scope="page|request|session|application"
{ class="package.class" |
type="package.class" |
class="package.class" type="pa " /> 午夜DV内射一区区,美女PK精子小游戏,暖暖 免费 高清 日本视频大全

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JSP教程(五)-JSP Actions的使用下

jsp:useBean Action 的使用

  一、 語法:
<jsp:useBean
id="beanInstanceName"
scope="page|request|session|application"
{ class="package.class" |
type="package.class" |
class="package.class" type="package.class" |
beanName="{package.class | <%= expression %>}" type="package.class"
}
{ /> |
> 其他元素
</jsp:useBean>
}

  這個action使您能將一個JavaBean裝入一個JSP頁面。這是一個非常有用的能力,因為它使您可以使用可重用的Java類而不需犧牲性能。最簡單的語法用于指定一個bean:

  <jsp:useBean id="name" class="package.class" />

  這通常意味著“實例化一個類的對象通過指定一個類,并將之與一個通過id指定名稱的變量綁定”。然而,就象我們看到的,您可以指定一個scope屬性來使得bean不僅僅與當(dāng)前的頁面相聯(lián)系。在這種情形下,得到一個對已存在的bean的引用是非常有用的,而且,僅當(dāng)沒有相同的id和scope的bean存在時才創(chuàng)建一個新的。現(xiàn)在,您已有了bean,您可以通過jsp:setProperty來修改它,或者,通過使用之前用id指定的名字來使用scriptlet或明確的調(diào)用方法。當(dāng)您說“這個bean有一個稱為foo的X類型的屬性”,您真正的意思是“這個類有一個稱為getFoo的方法,它返回X類型的某類值,還有另一個方法稱為setFoo,它以X為參數(shù)。”這jsp:setProperty action 將在下一單元詳細(xì)的介紹,但是現(xiàn)在您既可以給出一個明確的值,給出一個屬性來說明此值是從request的參數(shù)繼承而來,也可以僅僅列出屬性來標(biāo)志此值應(yīng)該從與屬性名同名的參數(shù)繼承而來。您可以通過調(diào)用適用的getXxx方法,或更普遍的,使用jsp:getProperty action,來得到已存在的JSP表達(dá)式或scriptlet屬性。

  請注意,為bean指定的類必須在服務(wù)器的規(guī)則的類路徑下,而不是用來保留當(dāng)改變時自動裝載的類的路徑。例如,在Java Web Server上,它和它所用的類必須到類的目錄或在lib目錄下的一個jar文件內(nèi),而不是在servlets的目錄下。

  下面讓我們來看一個非常簡單的例子,它裝載一個bean并且設(shè)置/得到一個簡單的串參數(shù)。

BeanTest.jsp
<HTML>
<HEAD>
<TITLE>Reusing JavaBeans in JSP</TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Reusing JavaBeans in JSP</TABLE>
</CENTER>
<P>
<jsp:useBean id="test" class="hall.SimpleBean" />
<jsp:setProperty name="test"
property="message"
value="Hello WWW" />
<H1>Message: <I>
<jsp:getProperty name="test" property="message" />
</I></H1>
</BODY>
SimpleBean.Java

  以下是bean的原代碼:

package hall;
public class SimpleBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}

  運行結(jié)果為:頁面輸出: Reusing JavaBeans in JSP

  b>Message:Hello WWW

  二、jsp:useBean 的詳細(xì)用法

  最簡單的使用bean的方式是:

  <jsp:useBean id="name" class="package.class"/>
  為了裝載bean,需要用jsp:setProperty和 jsp:getProperty來修改和檢索bean的屬性。且,還有兩種別的選項。首先,您可以使用容器的格式,也就是:

<jsp:useBean ...>
Body
</jsp:useBean>

要指出的是,Body部分應(yīng)該僅在bean第一次實例化時被執(zhí)行,而不是在每次被找到和使用時。Beans能夠被共享,因此,并不是所有的jsp:useBean 陳述都產(chǎn)生一個新的bean的實例。其次,除了id 或class以外,還有三種屬性您可以使用:scope,type,和beanName。這些屬性總結(jié)如下:

  屬性

  用法

id
  給一個變量命名,此變量將指向bean。如果發(fā)現(xiàn)存在一個具有相同的id和scope 的bean則使用之而不新建一個。

class
  指出bean的完整的包名。

scope
  指明bean在之上可以被使用的前后關(guān)系。有四個可能的值:page,request,session,和application。缺省為page,表明bean僅在當(dāng)前頁可用(保存在當(dāng)前的PageContext中)。request的一個值表明bean僅用于當(dāng)前客戶端的請求(保存在ServletRequest對象中)。Session的值指出在當(dāng)前的HttpSession的生命周期內(nèi),對象對所有的頁面可用。 最后,application的值指出對象對所有共享ServletsContext的頁面可以使用。使用jsp:useBean 僅在沒有相同的id和scope 的bean時創(chuàng)建一個新的bean,如果已有則使用之,并忽略以jsp:useBean標(biāo)志開始和結(jié)尾的代碼。

type
  指明將指向?qū)ο蟮淖兞康念愋汀_@必須與類名相匹配或是一個超類或者是一個實現(xiàn)類的接口。記住,變量的名由id屬性來指定。

beanName
  賦予bean一個名字,您應(yīng)該在Beans的實例化方法中提供。它允許您給出type和一個beanName,并省略類屬性。
  三、jsp:setProperty Action

  語法:

<jsp:setProperty
name="beanInstanceName"
{ property="*" |
property="propertyName" [ param="parameterName" ] |
property="propertyName" value="{string | <%= expression %>}"
}
/>

  在前面我們就知道了可以使用 jsp:setProperty 來為一個bean的屬性賦值。您可以使用兩種方式實現(xiàn)它。其一是,在jsp:useBean后(而不是在之內(nèi))使用jsp:setProperty:

<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName"
property="someProperty" ... />

  在這種方式中,jsp:setProperty 將被執(zhí)行無論是否已有一個具有相同的id和scope的bean存在。另一種方式是,jsp:setProperty出現(xiàn)在jsp:useBean 元素內(nèi),如:

<jsp:useBean id="myName" ... >
...
<jsp:setProperty name="myName"
property="someProperty" ... />
</jsp:useBean>

  此種情況下,jsp:setProperty僅在新的對象被實例化時才執(zhí)行。

  以下是四種jsp:setProperty的可用的屬性:

  屬性

  用法

name
  這是一個必選屬性。它指出哪一個bean的屬性將被設(shè)置。jsp:usebean必須出現(xiàn)在jsp:setProperty之前。

property
  這是一個必選屬性。表明您將設(shè)置哪一個屬性。然而,有一個特殊的情況:如果以"*"為值意味著,所有的名稱與bean的屬性匹配的request參數(shù)都將被傳遞到相應(yīng)的屬性設(shè)置方法。
value
  這是一個可選屬性。它指定被設(shè)置的屬性的值。字符串的值通過相應(yīng)的對象或包的標(biāo)準(zhǔn)的valueOf方法將自動的轉(zhuǎn)換為numbers,boolean,Boolean,byte,Byte,char,和Character。例如,boolean或Boolean屬性的值“true”將通過Boolean.valueOf方法轉(zhuǎn)化,而,一個int或Integer屬性的值“42”將通過Integer.valueOf轉(zhuǎn)化。您不能同時使用value和param屬性,但,兩個都不用是允許的。

param
  這是一個可選屬性。它指明了bean的屬性應(yīng)該繼承的request的參數(shù)。如果當(dāng)前的request沒有這樣的一個參數(shù),就什麼也不做:系統(tǒng)并不將null傳給設(shè)置屬性的方法。因此,您可以使用bean的缺省值。例如下面的這段程序執(zhí)行“將numberOfItems屬性設(shè)置為任意numItems request參數(shù)的值,如果有這樣的一個request參數(shù),否則什么也不做。”

<jsp:setProperty name="orderBean"
property="numberOfItems"
param="numItems" />

  如果您將value和param同時缺省,這和您將param的名稱設(shè)為bean的屬性名相同一樣。您可以通過將name的值設(shè)置為”*”和省略value和param來自動的使用與bean的屬性相應(yīng)的request的屬性。在這種情況下,服務(wù)器將反復(fù)的查找可用的屬性和request參數(shù)來匹配具有相同名字的。

  四、jsp:getProperty Action

  語法:

  <jsp:getProperty name="beanInstanceName" property="propertyName" />

  這個屬性檢索出bean的屬性的值并將之轉(zhuǎn)化為一個字符串,然后將之插入到輸出。它有兩個必選屬性:name,在之前用jsp:useBean引入的名稱,property,必須被插入值的屬性。  

jsp技術(shù)JSP教程(五)-JSP Actions的使用下,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产亚洲视频精彩在线播放 | 国产Av影片麻豆精品传媒 | 国产高清视频在线播放www色 | 99久在线国内在线播放免费观看 | 亚洲精品成人a在线观看 | 99视频精品国产在线视频 | 99久久re6热精品首页 | 国产99久久九九精品无码不卡 | 天天看学生视频 | 国产精品欧美亚洲 | 制服国产欧美亚洲日韩 | 找老女人泻火对白自拍 | xxx性欧美在线观看 xxx性欧美在线 | 老湿机一区午夜精品免费福利 | 久久久国产精品免费A片蜜芽广 | 免费人成在线观看视频不卡 | 久久精品热老司机 | 欧美精品AV一区二区无码 | younv 学生国产在线视频 | 高挑人妻无奈张开腿 | 国产97视频在线观看 | 国产乱码精品一区二区三区四川 | 亚洲日韩国产精品乱-久 | 挺进绝色老师的紧窄小肉六 | 亚洲地址一地址二地址三 | 99re久久这里只有精品 | 抽插H浊水H嫩B父皇 虫族bl文全肉高h | 在线亚洲国产日韩欧洲专区 | 国产精品一区二区亚瑟不卡 | 老司机福利在视频在ae8 | 国产午夜在线视频 | 蜜臀AV熟女人妻中文字幕 | 一本色道久久综合亚洲精品蜜桃冫 | 日本wwwhdsex69 | 国产精品内射久久久久欢欢 | 推倒美女总裁啪啪 | 亚洲成 人a影院青久在线观看 | adc我们的永久网址 adc网址在线观看 | 玉娇龙续集春雪瓶txt免费阅读 | 最新老头恋老OLDMAN | 国产午夜不卡 |