JSP筆記——4.七個動作指令

上一節中的編譯指令是給Servelt引擎看的,而這一節中提到的動作指令,則可以理解爲java代碼的一種簡化寫法。這些指令的目的是,用類似於html標籤元素的代碼,來代替jsp中的java腳本,使得整個頁面簡單明瞭。當然,在轉譯之後,這些動作指令會變成標準的java代碼,保存在對應的Servlet中。JSP主要的動作指令有7個。



forward:用於將頁面響應轉發到另外的html,jsp或者servlet。跳轉的時候可以傳遞參數,在另一個頁面用jsp輸出語法加request.getParameter("名字")來獲取,得到的是String。執行forward指令時,用戶的請求地址並沒有改變,請求數據請求屬性也不會丟失,因爲實際上,forward並沒有重新定向,只是採用了一個新的界面來相應,依然是一次請求。語法如下:

<jsp:forward page="forward-result-page.jsp">
    <jsp:param name="age" value="29"/>
</jsp:forward>


param:這個功能不能單獨使用,必須被包夾在include、plugin或者forward中。


include:將某個頁面的body體裏面的內容包含進來,正如上一節所說,不會包含編譯指令等內容。動態導入可以增加額外的參數,但然並卵,這個參數只能在被導入的頁面才能被讀取。forward用目標頁代替原有頁面同時保留request信息,而include把目標也插入原有頁面。


plugin:下載服務器端的javaBean到客戶端,基本用不上。


useBean、setProperty、getProperty:這三個指令用於操作一個java實例。如果多個頁面多次重複地使用某段代碼,我們可以把這段代碼定義爲java類的方法,然後多個jsp頁面調用該方法即可。useBean能夠在JSP頁面初始化一個java實例。代碼如下,其中id屬性就是實例的名字,比如說String a=new String,那麼a就是實例名。使用get能夠輸出這個屬性值

<jsp:useBean id="aaa" class="com.cm.classname" scope="request"/>
<jsp:setBean name="aaa" property="age" value="20"/>
<jsp:getBean name="aaa" property="age" />

當然,首先,我們得有事先寫好的java類。類中的屬性要有set、get方法。

實際上這兩個指令是去調用了java類中的set、get方法。因此set、get方法最好要自動生成,以保證名字能夠匹配。回想韓順平所講的,屬性名可以不一致,但是操作屬性的方法名一定要匹配上。此外這個javaBean實例還可以放到一個scope中,供其他jsp頁面使用。

總結:這些指令就如同一些簡便代碼,只要我們在jsp頁面中敲入他們,jsp容器就會自動的在對應的servlet中添加要實現的功能的代碼。並且它們還具有html標籤元素的特徵,維護起來比較容易,美工也容易看懂(爲什麼感覺美工弱弱的。。。)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章