JAVA流通橋

          JAVA啟發(fā)者

          統(tǒng)計(jì)

          留言簿(3)

          AJAX相關(guān)網(wǎng)址

          Eclipse相關(guān)網(wǎng)址

          Hibernate

          java相關(guān)網(wǎng)址

          LINUX相關(guān)網(wǎng)址

          webwork相關(guān)網(wǎng)址

          友好鏈接

          閱讀排行榜

          評(píng)論排行榜

          Portlet Configuration

          XWork配置

          你的應(yīng)用程序的基本包(base package)應(yīng)該擴(kuò)展自 webwork-portlet-default 包, 例如:

          xwork.xml
          <include file="webwork-default.xml" />
          <package name="view" extends="webwork-portlet-default" namespace="/view">

           

           

          Portlet初始化參數(shù)

          下面是在 portlet.xml 中為portlet配置portlet模式(mode) -> xwork命名空間(namespace)影射的 init-param 元素. 簡(jiǎn)單的講, 你可以把portlet模式理解為不同的子應(yīng)用程序, 這樣它可以為不同的portlet和portlet模式在 xowrk.xml 中配置不同的命名空間(namespace):

          Key 描述 默認(rèn)值
          portletNamespace 這個(gè)portlet在xwork配置中的命名空間(namespace). 命名空間(namespace)將在查找action時(shí)被優(yōu)先考慮, 從而允許在同一個(gè)portlet應(yīng)用程序中建立(host)多個(gè)portlet. 如果設(shè)定了這個(gè)參數(shù), 完整的命名空間(namespace)將會(huì)是 /portletNamespace/modeNamespace/actionName 默認(rèn)命名空間.
          viewNamespace xwork配置中視圖portlet模式(view portlet mode)的命名空間(namespace). The default namespace.
          editNamespace xwork配置中編輯portlet模式(edit portlet mode)的命名空間(namespace). The namespace in the xwork config for the edit portlet mode. 默認(rèn)命名空間.
          helpNamespace xwork配置中幫助portlet模式(help portlet mode)的命名空間(namespace). 默認(rèn)命名空間.
          defaultViewAction 在沒(méi)有指定action名稱(chēng)時(shí), 視圖portlet模式(view portlet mode)使用的默認(rèn)action名稱(chēng). 默認(rèn)值
          defaultEditAction 在沒(méi)有指定action名稱(chēng)時(shí), 編輯portlet模式(edit portlet mode)使用的默認(rèn)action名稱(chēng). 默認(rèn)值
          defaultHelpAction 在沒(méi)有指定action名稱(chēng)時(shí), 幫助portlet模式(help portlet mode)使用的默認(rèn)action名稱(chēng). 默認(rèn)值

          例子

          portlet.xml
          <init-param>
          <!-- Portlet 命名空間 -->
          <name>portletNamespace</name>
          <value>/portletA</value>
          </init-param>
          <init-param>
          <!-- view portlet 的基本命名空間 -->
          <name>viewNamespace</name>
          <value>/view</value>
          </init-param>
          <init-param>
          <!-- 在view portlet 模式下調(diào)用的默認(rèn)action名稱(chēng) -->
          <name>defaultViewAction</name>
          <value>index</value>
          </init-param>

           

           

          這個(gè) portlet.xml 的片斷將會(huì)建立一個(gè)命名空間為 /portletA/ 的portlet. 這意味著所有對(duì)該portlet的請(qǐng)求將優(yōu)先在此命名空間中尋找action. 進(jìn)一步說(shuō), _視圖(view) portlet 模式將會(huì)影射到 /view 命名空間, 這樣一個(gè)對(duì)叫 myAction 的action的請(qǐng)求將會(huì)被轉(zhuǎn)發(fā)到一個(gè) /portletA/view/myAction 命名空間下的action上. 這也意味著如果沒(méi)有請(qǐng)求一個(gè)action, 那么對(duì)這個(gè)請(qǐng)求將會(huì)調(diào)用默認(rèn)的action index.

          Portlet 階段(phases)

          Portlet規(guī)范描述一個(gè)portlet請(qǐng)求周期將持續(xù)為兩個(gè)階段, event(活動(dòng)) 階段 和 render(渲染) 階段. 假設(shè)這個(gè)portlet中有 event(活動(dòng)) 階段, 那么它將肯定先于 render(渲染) 階段執(zhí)行. Event(活動(dòng)) 階段一般用來(lái)改變應(yīng)用程序的狀態(tài). 在一個(gè)portlet中, 典型情況是在form提交的時(shí)候. Render(渲染) 階段將會(huì)準(zhǔn)備和分派到視圖(view). 推薦你將一個(gè)在 event(活動(dòng)) 階段執(zhí)行的action的結(jié)果(result)指向到另外一個(gè)在 render(渲染) 階段執(zhí)行的action上, 后者用來(lái)負(fù)責(zé)派發(fā)到真正的視圖.

          Portlet 結(jié)果派發(fā)(result dispatching)

          webwork-portlet-default 包定義了一個(gè)特殊的默認(rèn)結(jié)果類(lèi)型(result type), 它負(fù)責(zé)執(zhí)行一個(gè)Action執(zhí)行的結(jié)果邏輯(result logic). 一般, 這包括include一個(gè)jsp進(jìn)行渲染, 或者為當(dāng)前的活動(dòng) action準(zhǔn)備一個(gè)渲染 action.

          這個(gè)結(jié)果類(lèi)型有三種主要執(zhí)行模式.

          • 如果這個(gè)Action在渲染階段執(zhí)行, 它會(huì)對(duì)配置在 location 屬性下的資源執(zhí)行 PortletRequestDispatcher.include(req, res) 方法.
          • 如果這個(gè)Action在活動(dòng)階段執(zhí)行, 并且結(jié)果是一個(gè)action影射(action mapping), 它會(huì)給ActionResponse設(shè)置一個(gè)渲染參數(shù)指定哪個(gè)Action將會(huì)在接下來(lái)的渲染階段執(zhí)行. 這符合良好的web應(yīng)用程序設(shè)計(jì), 著提促進(jìn)了活動(dòng)后重定向(redirect)的使用, 這樣意味著一個(gè)在活動(dòng)階段執(zhí)行的Action將會(huì)緊接著被重定向到一個(gè)在渲染階段執(zhí)行的Action.
          • 如果這個(gè)Action在活動(dòng)階段被執(zhí)行, 并且結(jié)果不是一個(gè)action影射(action mapping), 結(jié)果將會(huì)作為一種特殊的Action準(zhǔn)備, 它被叫做 "renderDirect(直接渲染)" (在 webwork-portlet-default 包中指定), 它的唯一職責(zé)就是渲染特定的web資源 (一般是一個(gè)JSP).

          在活動(dòng)模式執(zhí)行的action可以通過(guò)result配置中的query string給渲染模式執(zhí)行的action傳遞渲染參數(shù):

          xwork.xml
          <result name="success">/displayCart.action?userId=${userId}</result>

           

           

          這會(huì)將一個(gè)叫做 userId渲染參數(shù) 值傳遞給將要派發(fā)到的action的 userId 屬性.

          renderDirect(直接著色,直接生成),實(shí)際上是把結(jié)果放到特定的WEB資源中..

          posted on 2007-04-13 10:02 朱巖 閱讀(448) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): webwork文章


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 吴忠市| 苍山县| 白银市| 蓬莱市| 孟津县| 洛扎县| 绥滨县| 彭州市| 青龙| 九江县| 唐海县| 普洱| 梅河口市| 景洪市| 元阳县| 利川市| 黎城县| 深州市| 盘锦市| 蒙山县| 宜黄县| 阜城县| 昭觉县| 南溪县| 临海市| 固原市| 武宁县| 石嘴山市| 安乡县| 健康| 郴州市| 苏尼特右旗| 洞头县| 吴忠市| 临汾市| 马鞍山市| 夏津县| 吉水县| 光山县| 丽江市| 剑阁县|