JSP動作利用XML語法格式的標記來控制Servlet引擎的行為。利用JSP動作可以動態地插入文件、重用JavaBean組件、把用戶重定向到另外的頁面、為Java插件生成Html代碼。
JSP動作包括:
JSP:include:在頁面被請求的時候引入一個文件。
JSP:useBean:尋找或者實例化一個JavaBean。
JSP:setProperty:設置JavaBean的屬性。
JSP:getProperty:輸出某個JavaBean的屬性。
JSP:forward:把請求轉到一個新的頁面。
JSP:plugin:根據浏覽器類型為Java插件生成OBJECT或EMBED標記。
13.1 JSP:include動作
該動作把指定文件插入正在生成的頁面。其語法如下:
<JSP:include page=\"relative URL\" flush=\"true\" />
前面已經介紹過include指令,它是在JSP文件被轉換成Servlet的時候引入文件,而這裡的jsp:include動作不同,插入文件的時間是在頁面被請求的時候。JSp:include動作的文件引入時間決定了它的效率要稍微差一點,而且被引用文件不能包含某些JSP代碼(例如不能設置HTTP頭),但它的靈活性卻要好得多。
例如,下面的JSP頁面把4則新聞摘要插入一個“What's New ?”頁面。改變新聞摘要時只需改變這四個文件,而主JSP頁面卻可以不作修改:
WhatsNew.JSP
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD Html 4.0 Transitional//EN\">
<Html>
<HEAD>
<TITLE>What's New</TITLE>
</HEAD>
<BODY BGCOLOR=\"#FDF5E6\" TEXT=\"#000000\" LINK=\"#0000EE\"
VLINK=\"#551A8B\" ALINK=\"#FF0000\">
<CENTER>
<TABLE BORDER=5 BGCOLOR=\"#EF8429\">
<TR><TH CLASS=\"TITLE\">
What's New at JSPNews.com</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>
13.2 JSP:useBean動作
JSp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。這個功能非常有用,因為它使得我們既可以發揮Java組件重用的優勢,同時也避免了損失JSP區別於Servlet的方便性。JSP:useBean動作最簡單的語法為:
<JSP:useBean id=\"name\" class=\"package.class\" />