隨筆 - 25  文章 - 32  trackbacks - 0
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          在Eclipse生成的代碼中頁(yè)面是使用facelets、richFaces等編寫的,所以頁(yè)面使用的文件格式是xhtml。而非jsp。當(dāng)然了,你也可以是用jsp編寫。這些生成的xhtml全部都在WebContent下

             首先看home.xhtml。

          1. <ui:composition xmlns="http://www.w3.org/1999/xhtml"
          2.                 xmlns:s="http://jboss.com/products/seam/taglib"
          3.                 xmlns:ui="http://java.sun.com/jsf/facelets"
          4.                 xmlns:f="http://java.sun.com/jsf/core"
          5.                 xmlns:h="http://java.sun.com/jsf/html"
          6.                 xmlns:rich="http://richfaces.org/rich"
          7.                 template="layout/template.xhtml">
          8. </ui:composition>

          ui:composition元素:UI組件,使用這個(gè)元素做根元素表示這個(gè)頁(yè)面并不是一個(gè)完整的頁(yè)面,而是需要一個(gè)template頁(yè)面作為摸版的內(nèi)容頁(yè)面。

                  xmlns:根元素命名空間。就是那些不帶前綴標(biāo)簽比如<div>

                   xmlns:s:Seam元素的命名空間。

                  template:摸版頁(yè)面

          摸版頁(yè)面:

          1. <html xmlns="http://www.w3.org/1999/xhtml"
          2.       xmlns:ui="http://java.sun.com/jsf/facelets"
          3.       xmlns:h="http://java.sun.com/jsf/html"
          4.       xmlns:f="http://java.sun.com/jsf/core"
          5.       xmlns:s="http://jboss.com/products/seam/taglib">
          6. <head>
          7.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          8.     <title>SeamTest</title>
          9.     <link href="stylesheet/theme.css" rel="stylesheet" type="text/css" />
          10. </head>
          11. <body>
          12.     <ui:include src="menu.xhtml">
          13.         <ui:param name="projectName" value="SeamTest"/>
          14.     </ui:include>
          15.     <div class="body">
          16.         <ui:insert name="body"/>
          17.     </div>
          18.     <div class="footer">
          19.         Powered by <a href="http://jboss.com/products/seam">Seam</a>.
          20.         Generated by seam-gen.
          21.     </div>
          22. </body>
          23. </html>

          ui:include:與<jsp:include>差不多。但這里沒(méi)有引入jsp命名空間。所以使用<ui:include>。

          <ui:insert/>:這個(gè)是一個(gè)template頁(yè)面。這個(gè)標(biāo)簽表示插入一個(gè)名為body的內(nèi)容塊。在內(nèi)容頁(yè)面--home.xhtml--與此對(duì)應(yīng)的是:<ui:define name="body"></ui:define>。在Seam-gen生成的頁(yè)面中幾乎所有的頁(yè)面都將template指向template.xhtml。還有另一種使用摸板的方式。比如layout/edit.xhtml。

          1. <ui:composition  xmlns="http://www.w3.org/1999/xhtml"
          2.                  xmlns:ui="http://java.sun.com/jsf/facelets"
          3.                  xmlns:h="http://java.sun.com/jsf/html"
          4.                  xmlns:f="http://java.sun.com/jsf/core"
          5.                  xmlns:s="http://jboss.com/products/seam/taglib">
          6.     <div class="prop">
          7.         <s:label styleClass="name #{invalid?'errors':''}">
          8.             <ui:insert name="label"/>
          9.             <s:span styleClass="required" rendered="#{required}">*</s:span>
          10.         </s:label>
          11.         <span class="value #{invalid?'errors':''}">
          12.             <s:validateAll>
          13.                 <ui:insert/>
          14.             </s:validateAll>
          15.         </span>
          16.         <span class="error">
          17.             <h:graphicImage value="/img/error.gif" rendered="#{invalid}" styleClass="errors"/>
          18.             <s:message styleClass="errors"/>
          19.         </span>
          20.     </div>
          21. </ui:composition>

           

          這里依然是使用<ui:insert />作為內(nèi)容頁(yè)面的插入塊。這里有兩塊<ui:insert />第一塊是有name屬性的,第二塊則是沒(méi)有name屬性的。如果沒(méi)有name屬性,表示在插入塊中沒(méi)有放在<ui:defind/》里的東西都放在沒(méi)有name的插入塊中。。。比如

          1.             <s:decorate id="nameDecoration" template="layout/edit.xhtml">
          2.                 <ui:define name="label">Name</ui:define>
          3.                 <h:inputText id="name" required="true"
          4.                              value="#{bookHome.instance.name}"/>
          5.             </s:decorate>

           

          這里<ui:defind name="label">這就是定義那個(gè)有名字的插入塊。而接下來(lái)的<h:inputText ... />則是放在了下面沒(méi)有名字的<ui:insert />中。上面的代碼也展示了使用摸板的另一種方式。使用<s:decorate/>使用摸板塊,摸板頁(yè)面的根需要是一個(gè)<ui:composition>元素。s:decorate是一個(gè)seam元素。必須在seam的管理的頁(yè)面中使用。

          其他:

               jsf中的form是不需要action的。比如<h:form id="login">

              標(biāo)簽的rendered屬性表示在什么情況下顯示。html標(biāo)簽沒(méi)有rendered屬性,比如div標(biāo)簽沒(méi)有rendered。

          其他的jsf標(biāo)簽我們可以通過(guò)學(xué)習(xí)jsf學(xué)習(xí)。因?yàn)閖sf標(biāo)簽,richFaces標(biāo)簽,faceslet標(biāo)簽太多了。這里就不一一介紹了。。。。大家有什么好的資料也麻煩告訴我哦。

          posted on 2008-12-15 09:15 phyeas 閱讀(825) 評(píng)論(2)  編輯  收藏 所屬分類: Seam項(xiàng)目實(shí)戰(zhàn)

          FeedBack:
          # re: Seam新手實(shí)戰(zhàn)(2):自動(dòng)生成的代碼2-xhtml文件 2008-12-17 12:46 小朱
          哈哈,正缺這方面的資料呢,謝謝了~~
          期待下一篇資料  回復(fù)  更多評(píng)論
            
          # re: Seam新手實(shí)戰(zhàn)(2):自動(dòng)生成的代碼2-xhtml文件 2008-12-17 18:22 phyeas
          @小朱
          不用謝。呵呵  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 新乐市| 台前县| 察哈| 宁化县| 大同市| 墨玉县| 米脂县| 汉川市| 玉树县| 宁阳县| 靖州| 顺昌县| 安仁县| 富源县| 共和县| 津南区| 鹿泉市| 昭苏县| 特克斯县| 铁岭市| 开鲁县| 苏尼特右旗| 安顺市| 三原县| 巫溪县| 新田县| 卓资县| 麟游县| 大新县| 和龙市| 曲阳县| 兴海县| 靖宇县| 兴仁县| 五大连池市| 五华县| 石嘴山市| 泰兴市| 美姑县| 额敏县| 五家渠市|