JSP入門初級教程之Actions的使用

來源:互聯網
上載者:User

JSP actions 使用您可以動態插入一個檔案,重用JavaBeans組件,前進到另一個頁面,或為Java 外掛程式產生一個HTML。可以使用的action 有:

(1) jsp:include --在頁面被請求時包含進一個檔案。

(2) jsp:useBean--找到或執行個體化一個JavaBean。

(3) jsp:setProperty--設定一個JavaBean屬性。

(4) jsp:getProperty--將JavaBean的屬性插入到輸出。

(5) jsp:forward--讓要求者可以向前到一個新的頁面。

(6) jsp:plugin--用OBJECT或EMBED標籤為Java plugins產生特定的瀏覽器的代碼。

1、jsp:include Action

這個action使您可以在即將產生的頁面上包含進一些檔案:

<jsp:include page="relative URL" flush="true" />  

與include directive不同,這個action是在頁面被請求時才將檔案包含進來,而,include directive則是在JSP頁面被轉換為servlet時包含檔案。為了提高效率,include action做了一點小小的犧牲,即,它不允許被包含的頁面含有一般的JSP代碼(例如,不可設定HTTP頭),但是,它具有顯著的靈活性,如下面的JSP 代碼,它實現將四個不同的片段插入如下的頁面。每一次當標題改變的時候,您僅需修改這四個檔案而無須更改主要的JSP 頁面。

WhatsNew.jsp

<HTML>
<HEAD>
<TITLE> JSP教程</TITLE>
<BODY >
<CENTER>
<TABLE BORDER=5 BGCOLOR="#EF8429">
<TR><TH CLASS="TITLE"> What"s New at Chinese comic sites</TABLE>
</CENTER>
<P>
Here is a summary of our four most recent news stories:
<OL>
<LI><jsp:include page="news/Item1.html" flush="true"/>
<LI><jsp:include page="news/Item2.html" flush="true"/>
<LI><jsp:include page="news/Item3.html" flush="true"/>
<LI><jsp:include page="news/Item4.html" flush="true"/>
</OL>
</BODY>
</HTML>

當然您可以定義自己? ML檔案,但有一點請注意:

您應該將檔案放到您的JSP目錄下的news目錄內。

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存在時才建立一個新的。現在,您已有了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

<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

Message:Hello WWW

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.