WebWork2教程(中文版)(4.1)
4、視圖
有幾種作為視圖的技術可以使用:
l JSP:這是Java Web開發(fā)者熟悉的技術,可以作為通用選擇;本教程介紹在JSP中使用WebWork的標記庫
l Velocity:一種基于Java的模板引擎,提供簡單而強大的模板語言VTL來替代JSP,將Java代碼從Web頁面中分離
l Freemaker:對于MVC模式設計,另外一種可以替代JSP的基于Java的模板引擎,但兼容JSP標記
4.1、使用JSP作為視圖
使用JSP呈現(xiàn)視圖,可以使用Scriptlets或WebWork標記來訪問Action的數(shù)據(jù)。推薦使用WebWork標記庫。
(1)使用Scriptlets訪問Acition的數(shù)據(jù)
在Scriptlets中是使用Value Stack對象訪問Action的數(shù)據(jù)的,下面是使用Scriptlets實現(xiàn)上節(jié)中第二個例子的結果輸出頁面:
<%@ page import="com.opensymphony.xwork.util.OgnlValueStack" %>
<html>
<head>
<title>WebWork Tutorial - Lesson 4.1 - Lesson 3's example modified</title>
</head>
<body>
<%
OgnlValueStack stack = (OgnlValueStack)request.getAttribute("webwork.valueStack");
out.write("Hello, " + stack.findValue("person"));
%>
</body>
</html>
然而,推薦使用WebWork標記,就象上節(jié)中第二個例子使用<ww:property />做的那樣,具有清晰的語法,并能在Value Stack對象不存在時處理。
(2)使用WebWork標記庫
WebWork標記庫可以分為7類:
l 通用標記:最常用的基本標記;
l 組件標記:在視圖中生成組件;
l 流程控制標記:控制JSP中的流程;
l Iteration標記:遍歷訪問元素或操作可遍歷對象;
l UI標記:生成HTML表單域和控制;
l VUI標記:(需要志愿者來編寫);
l 國際化標記:使視圖具有國際化;
(1)通用標記
<ww:property /> |
獲得結果屬性值;如果值不存在,返回Value Stack 中最頂上的值 |
<ww:push /> |
將值推入Value Stack |
<ww:param /> |
設置父標記的參數(shù)(屬性)值;該標記只能在其它標記內(nèi)部使用 |
<ww:set /> |
設置Value Stack 中具有指定范圍(page, stack, application, session)的對象值;如果沒有指定值,使用Value Stack 中最頂上的值 |
<ww:url /> |
創(chuàng)建編碼的URL |
(2)組件標記
<ww:action /> |
在taglib的上下文中執(zhí)行一個Action ,標記體用來顯示Action 的響應結果 |
<ww:bean /> |
在ActionContext 中創(chuàng)建一個JavaBean,實例化它的屬性,以便以后使用 |
<ww:include /> |
包含另外一個頁面或Action |
(3)流程控制標記
<ww:if /> |
如果條件標記的布爾表達式為true ,計算標記體的內(nèi)容 |
<ww:else /> |
如果前面條件標記的布爾表達式為false,計算標記體的內(nèi)容 |
<ww:elseif /> |
如果前面條件標記的布爾表達式為false,而本條件標記的布爾表達式為true,計算標記體的內(nèi)容 |
(4)Iteration標記
<ww:iterator /> |
遍歷一個集合 |
<ww:generator /> |
生成遍歷對象 |
<ww:append /> |
追加遍歷對象 |
<ww:subset /> |
獲得遍歷對象的子集 |
<ww:merge /> |
合并幾個遍歷對象為一個. |
(5)UI標記
生成HTML表單控件的UI標記和WebWork核心緊密集成,標記被設計為最小化編譯代碼邏輯的數(shù)量和使用模板系統(tǒng)呈現(xiàn)HTML的代表。UI標記覆蓋了大部分常用標記,而且提供了一個組件標記,用來創(chuàng)建定制組件。UI標記還提供了顯示內(nèi)聯(lián)錯誤信息的內(nèi)建支持。有關UI標記的詳細介紹,在下一節(jié)中講述。
(6)VUI標記
需要志愿者來編寫。
(7)國際化標記
<ww:text /> |
打印出國際化字符串 |
<ww:i18n /> |
將一個資源包放到Value Stack中, 以便<ww:text />標記使用 |
posted on 2007-06-28 09:40 junky 閱讀(856) 評論(0) 編輯 收藏 所屬分類: web