一、include動作指令
<jsp:include>標簽表示包含一個靜態的或者動態的文件。
語法:
<jsp:include page="文件路徑" flush="true" />
或者
<jsp:include page="path" flush="true">
<jsp:param name="參數名1" value="參數1值" />
...............
<jsp:param name="參數名n" value="參數n值" />
</jsp:include>
注:
1、flush="true" 必須使用flush為true,它默認值是false。
2、<jsp:param>子句能讓你傳遞一個或多個參數給動態文件,也可在一個頁面中使用多個<jsp:param>來傳遞多個參數給動態文件。
二、forward動作指令
<jsp:forward>標簽從一個JSP文件向另一個文件傳遞包含用戶請求的request對象。
語法:
<jsp:forward page="文件路徑" />
或者
<jsp:forward page="文件路徑">
<jsp:param name="參數名1" value="參數1值" />
...............
<jsp:param name="參數名n" value="參數n值" />
</jsp:forward>
三、useBean動作指令
<jsp:useBean>標簽表示用來在JSP頁面中創建一個BEAN實例并指定它的名字以及作用范圍。
語法:
<jsp:useBean id="name" scope="page | request | session | application" typeSpec />
其中typeSpec有以下幾種可能的情況:
class="包名.類名" | class="包名.類名" type="typeName" | beanName="包名.類名" type="typeName"
在JSP中使用bean,class屬性必須使用完全限定類名——包括包名的類名。不管你是否使用<%@ page import ...%>輸入包,都要滿足這個要求。
<jsp:useBean id=”book” class=”core.Book”/> 等價于 <%core.Book book=new core.Book();%>
僅當找不到相同id和scope的bean時,jsp:useBean元素才會實例化新的bean。如果存在相同id和scope的bean,則只是將已有的bean綁定到相關的變量(由id指定)。
我們可以不使用 <jsp:useBean…/>
轉而使用 <jsp:useBean>statements</jsp:useBean>
使用第二種形式的意義在于,jsp:useBean的起始標簽和結束標簽之間的語句只是在創建新的bean時執行,如果使用已有的bean,則不執行。
四、getProperty動作指令
<jsp:getProperty>標簽表示獲取BEAN的屬性的值并將之轉化為一個字符串,然后將其插入到輸出的頁面中。
語法:
<jsp:getProperty name="bean的名稱" property="屬性名稱" />
注:
1、在使用<jsp:getProperty>之前,必須用<jsp:useBean>來創建它。
2、不能使用<jsp:getProperty>來檢索一個已經被索引了的屬性。
3、能夠和JavaBeans組件一起使用<jsp:getProperty>,但是不能與Enterprise Java Bean一起使用。
五、setProperty動作指令
<jsp:setProperty>標簽表示用來設置Bean中的屬性值。
四種語法格式:
<jsp:setProperty name="bean的名稱" property="*" />
<jsp:setProperty name="bean的名稱" property="屬性名稱"/>
<jsp:setProperty name="bean的名稱" property="屬性名稱" param="參數值" />
<jsp:setProperty name="bean的名稱" property="屬性名稱" value="屬性值" />
第一種語法格式中,property="*",應用這種格式要求bean屬性的名字與類型要和request對象中參數名稱與類型一致,一次用bean中的屬性來接收客戶輸入的數據,系統會根據名稱來自動匹配。
第二種語法格式則指設置其中匹配的一個bean的屬性。
第三種語法格式根據制定的request對象中的參數與屬性匹配。
第四種語法格式用來給bean的屬性賦值,屬性值的數據類型要與屬性的數據類型一致,否則會出錯。字符串轉換為其他數據類型的函數分別為:
轉換為boolean Boolean.valueof(String str).booleanValue()
轉換為byte Byte.valueof(String str).byteValue()
轉換為char Character.valueof(String str).charValue()
轉換為double Double.valueof(String str).doubleValue()
轉換為float Float.valueof(String str).floatValue()
轉換為int Integer.valueof(String str).intValue()
轉換為long Long.valueof(String str).longValue()
注:使用 jsp:setProperty 來為一個Bean的屬性賦值;可以使用兩種方式來實現。
1、在jsp:useBean后使用jsp:setProperty:
<jsp:useBean id="myUser" … />
…
<jsp:setProperty name="user" property="user" … />
在這種方式中,jsp:setProperty將被執行。
2、jsp:setProperty出現在jsp:useBean標簽內:
<jsp:useBean id="myUser" … >
…
<jsp:setProperty name="user" property="user" … />
</jsp:useBean>
在這種方式中,jsp:setProperty只會在新的對象被實例化時才將被執行。
在同一個setProperty動作指令中不能同時存在param和value參數。
六、plugin動作指令
這個動作指令用來在JSP中加載Java applet小程序。用<applet></applet>也可以是客戶端下載并運行Java applet小程序,但有的瀏覽器不支持,如果Java applet小程序使用了這樣的類,將無法執行。用plugin動作指令可以較好的解決這個問題。
語法:
<jsp:plugin
type="applet"
code="小程序的類文件"
codebase="小程序所在的位置"
[ height="小程序顯示高度" ]
[ width="小程序顯示寬度" ]
[ jreversion="虛擬機版本號" ]
[ <jsp:params>
[ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+
</jsp:params> ]
[ <jsp:fallback> 客戶端瀏覽器是否支持插件下載的提示信息</jsp:fallback> ]
</jsp:plugin>
注:
code參數是指小程序經過編譯后的字節碼文件,擴展名為.class。
codebase參數值出這個字解碼文件所在的位置,可以是相對路徑也可以是絕對路徑,但在這個參數中不需要文件名,只需要目錄路徑就可以了,如果自己嗎文件與調用的jsp文件在同一目錄下,則此參數可以省略。