Junky's IT Notebook

          導(dǎo)航

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          隨筆分類(224)

          文章分類(5)

          隨筆檔案(228)

          文章檔案(7)

          統(tǒng)計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          WebWork2教程(中文版)(4.1)

          4、視圖

          有幾種作為視圖的技術(shù)可以使用:

          l         JSP:這是Java Web開發(fā)者熟悉的技術(shù),可以作為通用選擇;本教程介紹在JSP中使用WebWork的標(biāo)記庫

          l         Velocity:一種基于Java的模板引擎,提供簡單而強大的模板語言VTL來替代JSPJava代碼從Web頁面中分離

          l         Freemaker對于MVC模式設(shè)計另外一種可以替代JSP的基于Java的模板引擎,但兼容JSP標(biāo)記

          4.1、使用JSP作為視圖

          使用JSP呈現(xiàn)視圖,可以使用ScriptletsWebWork標(biāo)記來訪問Action的數(shù)據(jù)。推薦使用WebWork標(biāo)記

          1)使用Scriptlets訪問Acition的數(shù)據(jù)

          Scriptlets中是使用Value Stack對象訪問Action的數(shù)據(jù)的,下面是使用Scriptlets實現(xiàn)上節(jié)中第二個例子的結(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標(biāo)記,就象上節(jié)中第二個例子使用<ww:property />做的那樣,具有清晰的語法,并能在Value Stack對象不存在時處理。

          2)使用WebWork標(biāo)記庫

          WebWork標(biāo)記庫可以分為7類:

          l         通用標(biāo)記:最常用的基本標(biāo)記;

          l         組件標(biāo)記:在視圖中生成組件;

          l         流程控制標(biāo)記:控制JSP中的流程;

          l         Iteration標(biāo)記:遍歷訪問元素或操作可遍歷對象;

          l         UI標(biāo)記:生成HTML表單域和控制;

          l         VUI標(biāo)記:(需要志愿者來編寫);

          l         國際化標(biāo)記:使視圖具有國際化;

          1)通用標(biāo)記

          <ww:property />

          獲得結(jié)果屬性值;如果值不存在,返回Value Stack 中最頂上的值

          <ww:push />

          將值推入Value Stack

          <ww:param />

          設(shè)置父標(biāo)記的參數(shù)(屬性)值;該標(biāo)記只能在其它標(biāo)記內(nèi)部使用

          <ww:set />

          設(shè)置Value Stack 中具有指定范圍(page, stack, application, session)的對象值;如果沒有指定值,使用Value Stack 中最頂上的值

          <ww:url />

          創(chuàng)建編碼的URL

          2)組件標(biāo)記

          <ww:action />

          taglib的上下文中執(zhí)行一個Action ,標(biāo)記體用來顯示Action 的響應(yīng)結(jié)果

          <ww:bean />

          ActionContext 中創(chuàng)建一個JavaBean,實例化它的屬性,以便以后使用

          <ww:include />

          包含另外一個頁面或Action

          3)流程控制標(biāo)記

          <ww:if />

          如果條件標(biāo)記的布爾表達式為true ,計算標(biāo)記體的內(nèi)容

          <ww:else />

          如果前面條件標(biāo)記的布爾表達式為false,計算標(biāo)記體的內(nèi)容

          <ww:elseif />

          如果前面條件標(biāo)記的布爾表達式為false,而本條件標(biāo)記的布爾表達式為true,計算標(biāo)記體的內(nèi)容

          4Iteration標(biāo)記

          <ww:iterator />

          遍歷一個集合

          <ww:generator />

          生成遍歷對象

          <ww:append />

          追加遍歷對象

          <ww:subset />

          獲得遍歷對象的子集

          <ww:merge />

          合并幾個遍歷對象為一個.

          5UI標(biāo)記

          生成HTML表單控件的UI標(biāo)記和WebWork核心緊密集成,標(biāo)記被設(shè)計為最小化編譯代碼邏輯的數(shù)量和使用模板系統(tǒng)呈現(xiàn)HTML的代表。UI標(biāo)記覆蓋了大部分常用標(biāo)記,而且提供了一個組件標(biāo)記,用來創(chuàng)建定制組件。UI標(biāo)記還提供了顯示內(nèi)聯(lián)錯誤信息的內(nèi)建支持。有關(guān)UI標(biāo)記的詳細介紹,在下一節(jié)中講述。

          6VUI標(biāo)記

          需要志愿者來編寫。

          7)國際化標(biāo)記

          <ww:text />

          打印出國際化字符串

          <ww:i18n />

          將一個資源包放到Value Stack, 以便<ww:text />標(biāo)記使用


          posted on 2007-06-28 09:40 junky 閱讀(856) 評論(0)  編輯  收藏 所屬分類: web

          主站蜘蛛池模板: 安岳县| 新平| 游戏| 磴口县| 新巴尔虎左旗| 大厂| 鹿邑县| 南涧| 牙克石市| 伊吾县| 嘉义市| 青冈县| 汤原县| 恩平市| 广水市| 新邵县| 商丘市| 渝中区| 筠连县| 乐昌市| 平邑县| 江阴市| 嘉义市| 武冈市| 双峰县| 枣强县| 道孚县| 托克托县| 清涧县| 茌平县| 永平县| 佳木斯市| 贵州省| 井冈山市| 湾仔区| 横峰县| 麦盖提县| 安国市| 马鞍山市| 高碑店市| 中阳县|