無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          SiteMesh 全部標簽

          Posted on 2010-05-11 22:29 Gavin.lee 閱讀(425) 評論(0)  編輯  收藏 所屬分類: SiteMesh 頁面裝飾組件

          1.Decorator Tags 被用于建立裝飾器頁面.
          <decorator:head />
          <decorator:body />
          <decorator:title />
          <decorator:getProperty />
          <decorator:usePage />

          2.Page Tags 被用于從原始內容頁面訪問裝飾器.
           <page:applyDecorator />
          <page:param/>
           
          <decorator:head />

          插入原始頁面(被包裝頁面)的head標簽中的內容(不包括head標簽本身)。

          <decorator:body />
          插入原始頁面(被包裝頁面)的body標簽中的內容。

          <decorator:title [ default="..." ] />

          插入原始頁面(被包裝頁面)的title標簽中的內容,還可以添加一個缺省值。

          例:

          /_decorator/main.jsp中 (裝飾器頁面): <title><decorator:title default="卻省title-hello"  /> - 附加標題</title>

          /aaa.jsp中 (原始頁面):<title>aaa頁面</title>

          訪問/aaa.jsp的結果:<title>aaa頁面 - 附加標題</title>

          <decorator:getProperty property="..." [ default="..." ] [ writeEntireProperty="..." ]/>

          在標簽處插入原始頁面(被包裝頁面)的原有的標簽的屬性中的內容,還可以添加一個缺省值。

          sitemesh文檔中的例子很好理解:
          The decorator: <body bgcolor="white"<decorator:getProperty property="body.onload" writeEntireProperty="true" />>
          The undecorated page: <body onload="document.someform.somefield.focus();">
          The decorated page: <body bgcolor="white" onload="document.someform.somefield.focus();">

          注意,writeEntireProperty="true"會在插入內容前加入一個空格。

          <decorator:usePage id="..." />
          象jsp頁面中的<jsp:useBean>標簽一樣,可以使用被包裝為一個Page對象的頁面。 (懶的用)

          例:可用<decorator:usePage id="page" /> :<%=page.getTitle()%>達到<decorator:title/>的訪問結果。 

          <page:applyDecorator name="..." [ page="..." title="..." ] >
          <page:param name="..."> ... </page:param>
          <page:param name="..."> ... </page:param>
          </page:applyDecorator>

          應用包裝器到指定的頁面上,一般用于被包裝頁面中主動應用包裝器。這個標簽有點不好理解,我們來看一個例子:

          包裝器頁面 /_decorators/panel.jsp:<p><decorator:title /></p>  ... <p><decorator:body /></p>
            并且在decorators.xml中有<decorator name="panel" page="panel.jsp"/>

          一個公共頁面,即將被panel包裝:/_public/date.jsp: 
            ... <%=new java.util.Date()%>  ...<decorator:getProperty property="myEmail" />

          被包裝頁面 /page.jsp :
            <title>page的應用</title>
            ..... 
            <page:applyDecorator name="panel" page="/_public/date.jsp" >
              <page:param name="myEmail"> chen_p@neusoft.com </page:param>
            </page:applyDecorator>


          最后會是什末結果呢?除了/page.jsp會被默認的包裝頁面包裝上header,footer外,page.jsp頁面中還內嵌了date.jsp頁面,并且此date.jsp頁面還會被panel.jsp包裝為一個title加body的有2段的頁面,第1段是date.jsp的title,第2段是date.jsp的body內容。

          另外,page:applyDecorator中包含的page:param標簽所聲明的屬性值還可以在包裝頁面中用decorator:getProperty標簽訪問到。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 怀安县| 桐城市| 新乐市| 阿拉善右旗| 边坝县| 资中县| 长子县| 齐河县| 英吉沙县| 潢川县| 潜江市| 镇巴县| 阿克陶县| 苏尼特左旗| 郓城县| 高安市| 连城县| 容城县| 加查县| 青岛市| 东丽区| 正安县| 普陀区| 棋牌| 应城市| 大宁县| 富平县| 内黄县| 兴海县| 阿城市| 上思县| 木兰县| 长葛市| 长寿区| 任丘市| 涿州市| 平遥县| 梅河口市| 茂名市| 田林县| 三穗县|