亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

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

2020-07-27 21:54:26
字體:
來源:轉載
供稿:網友
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不僅僅與當前的頁面相聯系。在這種情形下,得到一個對已存在的bean的引用是非常有用的,而且,僅當沒有相同的id和scope的bean存在時才創建一個新的?,F在,您已有了bean,您可以通過jsp:setProperty來修改它,或者,通過使用之前用id指定的名字來使用scriptlet或明確的調用方法。當您說“這個bean有一個稱為foo的X類型的屬性”,您真正的意思是“這個類有一個稱為getFoo的方法,它返回X類型的某類值,還有另一個方法稱為setFoo,它以X為參數?!边@jsp:setProperty action 將在下一單元詳細的介紹,但是現在您既可以給出一個明確的值,給出一個屬性來說明此值是從request的參數繼承而來,也可以僅僅列出屬性來標志此值應該從與屬性名同名的參數繼承而來。您可以通過調用適用的getXxx方法,或更普遍的,使用jsp:getProperty action,來得到已存在的JSP表達式或scriptlet屬性。

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

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

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;
}
}

  運行結果為:頁面輸出: Reusing JavaBeans in JSP

  b>Message:Hello WWW

  二、jsp:useBean 的詳細用法

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

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

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

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

  屬性

  用法

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

class
  指出bean的完整的包名。

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

type
  指明將指向對象的變量的類型。這必須與類名相匹配或是一個超類或者是一個實現類的接口。記住,變量的名由id屬性來指定。

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

  語法:

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

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

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

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

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

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

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

  屬性

  用法

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

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

param
  這是一個可選屬性。它指明了bean的屬性應該繼承的request的參數。如果當前的request沒有這樣的一個參數,就什麼也不做:系統并不將null傳給設置屬性的方法。因此,您可以使用bean的缺省值。例如下面的這段程序執行“將numberOfItems屬性設置為任意numItems request參數的值,如果有這樣的一個request參數,否則什么也不做?!?br>
<jsp:setProperty name="orderBean"
property="numberOfItems"
param="numItems" />

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

  四、jsp:getProperty Action

  語法:

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产99久久精品一区二区永久免费| 久久久久亚洲精品| 欧美在线观看一区二区三区| 欧美日韩国产一区在线| 亚洲精品视频播放| 日韩av在线一区| 日韩一区二区在线视频| 91香蕉嫩草神马影院在线观看| 中文字幕久热精品视频在线| 亚洲精品成人免费| 亚洲国产精品久久精品怡红院| 亚洲国产欧美一区二区三区久久| 久久精品91久久久久久再现| 中文字幕日韩欧美在线视频| 国产日韩欧美成人| 国产欧美日韩精品专区| 亚洲大胆人体在线| 国产精品入口尤物| 日韩成人免费视频| 亚洲精品99999| 亚洲春色另类小说| 久久精品91久久久久久再现| 欧美成人激情视频免费观看| 午夜精品视频网站| 色中色综合影院手机版在线观看| 日本一区二区在线播放| 久久精品视频在线| 精品国产鲁一鲁一区二区张丽| 日韩高清av一区二区三区| 亚洲精品免费网站| 国产一区二区在线免费视频| 97久久久免费福利网址| 一区二区三区视频免费| 国产精品综合不卡av| 亚洲欧洲免费视频| 亚洲sss综合天堂久久| 国产精品中文字幕久久久| 在线看欧美日韩| 欧美日韩精品在线播放| 欧美日韩综合视频| 欧美亚洲国产日本| 最近2019中文字幕在线高清| 国产一区二区在线免费| 亚洲综合大片69999| 欧美激情一二三| 亚洲国产精品va在线观看黑人| 国产日韩在线播放| 国语自产在线不卡| 亚洲精品第一页| 最近2019中文字幕在线高清| 成人女保姆的销魂服务| 欧美怡春院一区二区三区| 国产精品成久久久久三级| 亚洲欧美日韩中文在线| 国产精品久久久久秋霞鲁丝| 91日本在线观看| 欧美成人h版在线观看| 孩xxxx性bbbb欧美| 国产精品久久久久久超碰| 国产精品久久久久久久久久久不卡| 久久久精品国产亚洲| 国产欧美日韩中文字幕在线| 国产精品视频导航| 精品国产31久久久久久| 亚洲精品资源美女情侣酒店| 国产精品国产三级国产aⅴ浪潮| 91精品久久久久| 全球成人中文在线| 久久免费视频在线观看| 日韩高清不卡av| 777午夜精品福利在线观看| 久久久欧美一区二区| 亚洲美女久久久| 91精品国产综合久久香蕉922| 国内精品久久久久久中文字幕| 久久久久久网址| 久久精品99无色码中文字幕| 在线观看日韩专区| 亚洲黄页网在线观看| 国产做受69高潮| 国内精品一区二区三区四区| 最近2019年中文视频免费在线观看| 日韩小视频网址| 国产精品日韩欧美| 欧美资源在线观看| 亚洲国产精品小视频| 国产综合视频在线观看| 久久久国产精品视频| 欧美精品免费在线观看| 亚洲图片欧美日产| 久久久国产成人精品| 国产一区视频在线| 久久久国产精彩视频美女艺术照福利| 国产一区二区丝袜| 欧美成人午夜免费视在线看片| 国产精品视频资源| 久久国产精彩视频| 欧美日韩亚洲精品一区二区三区| 亚洲午夜av电影| 美女性感视频久久久| 日韩av手机在线| 欧美孕妇性xx| 欧美精品999| 亚洲精品国产精品国自产观看浪潮| 久久精品国产欧美激情| 亚洲自拍偷拍区| 久久色免费在线视频| 性欧美xxxx视频在线观看| www.亚洲免费视频| 午夜精品在线视频| 国产99久久精品一区二区| 91黄色8090| 亚洲女人天堂成人av在线| 国产成人精品一区| 日本伊人精品一区二区三区介绍| 欧美视频一区二区三区…| 国产精品高潮呻吟久久av无限| 久久影院中文字幕| 欧美成人精品一区| 97精品伊人久久久大香线蕉| 亚洲欧美日韩精品| 久久人人爽国产| 亚洲精品久久久久中文字幕二区| 亚洲人成电影网站色…| 欧美在线欧美在线| 亚洲欧美激情精品一区二区| 国产精品久久国产精品99gif| 亚洲激情视频在线观看| 国产精品69精品一区二区三区| 精品国内亚洲在观看18黄| 亚洲激情在线视频| 久久亚洲精品中文字幕冲田杏梨| 国产精品69久久久久| 亚洲视频一区二区三区| 亚洲专区在线视频| 亚洲a成v人在线观看| 亚洲欧美国产一区二区三区| 国产精品日韩在线一区| 国产亚洲美女精品久久久| 久久99青青精品免费观看| 久久777国产线看观看精品| 国产美女扒开尿口久久久| 欧美www视频在线观看| 日本精品在线视频| 国产精品成人一区二区三区吃奶| 欧美另类老女人| 精品露脸国产偷人在视频| 亚洲黄色在线观看| 欧美黄网免费在线观看| 欧美老女人在线视频| 美女性感视频久久久| 国产精品亚洲欧美导航| 国产精品吊钟奶在线| 色播久久人人爽人人爽人人片视av| 91av免费观看91av精品在线| 日本韩国在线不卡| 中文字幕无线精品亚洲乱码一区| 久久久视频在线| 亚洲一区二区三区成人在线视频精品| 国产成人精品999| 欧洲日本亚洲国产区| 国产精品嫩草影院久久久| 久久久国产91| 日韩av在线电影网|