BaNg@taobao

          Just Do It!

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            20 Posts :: -1 Stories :: 202 Comments :: 0 Trackbacks
          周二,我興匆匆去老劉那演示RichFaces的Table控件,可老劉說了,RichFaces太復(fù)雜,不適合我們,且還有不少的bug(這些我無法考證:)。于是他拿出一個使用了一堆JSP+Servelet+Bean寫的一個表格,跟說我,我很懷疑JSF能做出這個東西來,你使用純JSF做一個一樣的表格組件我就相信JSF能夠用在開發(fā)平臺(注:我是此Eclipse開發(fā)平臺的兼職架構(gòu)師)上。我心里琢磨,既然你是用JSP/Servlet搞出來的,而JSF是基于Servlet的技術(shù),怎么可能實現(xiàn)不了呢? 三天做出來!我一直相信,技術(shù)在于使用技術(shù)的人,而不是技術(shù)本身。

          下載

          先看圖吧:



          再看看對應(yīng)的JSF標(biāo)記

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml"
              xmlns:h
          ="http://java.sun.com/jsf/html"
              xmlns:f
          ="http://java.sun.com/jsf/core"
              xmlns:ui
          ="http://java.sun.com/jsf/facelets"
              xmlns:cby
          ="http:/www.lifesting.com/jsf">

          <ui:composition template="/tpl.xhtml">

              
          <ui:define name="pageTitle">表格展示</ui:define>
              
          <ui:define name="pageHeader">國家</ui:define>
              
          <ui:define name="body">

              
          <h:form>
                      
          <h:panelGrid columns="1">
                          
          <h:message for="mytable" />
                      
          </h:panelGrid>
                      
          <cby:rns text="頁面設(shè)置" tableFor="mytable" />
                      
          <cby:filter text="過濾策略" tableFor="mytable" />
                      
          <cby:delete tableFor="mytable" />
                      
          <cby:table id="mytable" var="rec" checkable="true" idField="code"
                          bean
          ="Country">
                          
          <cby:column field="name" sortable="true" filterable="true"
                              width
          ="200" value="名稱">
                              
          <h:outputText value="#{rec.wrapped.name}"></h:outputText>
                          
          </cby:column>
                          
          <cby:column field="region" sortable="true" filterable="false"
                              width
          ="100" value="區(qū)域">
                              
          <h:outputText value="#{rec.wrapped.region}"></h:outputText>
                          
          </cby:column>
                          
          <cby:column field="surfaceArea" sortable="false" filterable="true"
                              width
          ="150" value="表面積">
                              
          <h:outputText value="#{rec.wrapped.surfaceArea}"></h:outputText>
                          
          </cby:column>
                          
          <cby:column field="population" sortable="true" filterable="true"
                              width
          ="100" value="人口">
                              
          <h:outputText value="#{rec.wrapped.population}"></h:outputText>
                          
          </cby:column>
                          
          <cby:ds />
                      
          </cby:table>
                  
          </h:form>
              
          </ui:define>
          </ui:composition>

          </html>

          因為開發(fā)平臺最終是以BO為核心,所以此表格組件是通過設(shè)置 bean,然后再通過Hibernate來獲取數(shù)據(jù)的。

          這個組件除采用JSF +Facelet之外,沒有其它頁面技術(shù),代碼簡潔,無抽象,且里面還有注釋,初學(xué)者可以參考一下。

          主要功能:
          1 設(shè)置column的filterable屬性(true/false)來過濾數(shù)據(jù)(目前實現(xiàn)為左匹配,比如輸入Sa,就是Sa開頭的)
          2 分頁導(dǎo)航
          3 設(shè)置column的sortable屬性(true/false)用來對某列進(jìn)行 正/反 排序
          4 改變頁記錄大小,默認(rèn)為20條/頁
          5 設(shè)置table的checkable屬性為true,表格將會多一列用來選擇。
          6 可以批量刪除被checked的記錄。

          這個組件只考慮了功能,并沒有考慮到美觀,如果你覺得可以用,改改它的html屬性設(shè)置。

          安裝:

          1 附件是一個Maven項目,必須安裝有maven。
          2 安裝MySQL數(shù)據(jù)庫,啟動MySQL,運(yùn)行
          create database world
          3 找到項目下面的world.sql,假設(shè)其路徑為/a/b/c/world.sql,使用MySQL的source命令
          use world
          source /a/b/c/world.sql
          4修改項目下的hibernate.cfg.xml中MySQL數(shù)據(jù)庫用戶名/密碼。
          5 執(zhí)行mvn jetty:run 啟動
          6 瀏覽器輸入 http://localhost:8080/jsftry/ 就可以看到效果了

          關(guān)于調(diào)試:
          1 下載一個Eclipse JEE版本
          2  在項目目錄下執(zhí)行 mvn eclipse:clean eclipse:eclipse -DdownloadSources=true -Dwtpversion=1.5
          3 在eclipse workspace中import此項目

          雖然工作中不用Java很久了,但拿起來玩玩還是覺得Java真的很有生產(chǎn)力。JSF,Hibernate,Maven,Eclipse一個比一個牛比。



          posted on 2009-07-04 13:22 Always BaNg. 閱讀(2559) 評論(10)  編輯  收藏 所屬分類: Java

          Feedback

          # re: 賭氣做了一個JSF Table Component,分享源代碼! 2009-07-04 16:45 凡客誠品
          但拿起來玩玩還是覺得Java真的很有生產(chǎn)力  回復(fù)  更多評論
            

          # re: 賭氣做了一個JSF Table Component,分享源代碼! 2009-07-04 16:51 good
          SQL文件有亂碼呢,樓主用Latin1編碼?用UTF-8的把  回復(fù)  更多評論
            

          # re: 賭氣做了一個JSF Table Component,分享源代碼! 2009-07-04 17:47 Always BaNg.
          我使用的是Ubuntu 9,默認(rèn)是UTF-8編碼

          關(guān)于world數(shù)據(jù)庫,也可以在mysql的網(wǎng)站上下載。

          google 搜索"mysql sample db",有好幾個示例數(shù)據(jù)如world, sakila等  回復(fù)  更多評論
            

          # re: 賭氣做了一個JSF Table Component,分享源代碼! 2009-07-05 12:13 凡客誠品網(wǎng)站
          高手!  回復(fù)  更多評論
            

          # re: 做了一個JSF表格組件,分享源代碼![未登錄] 2009-07-05 18:12 aaaa
          說做不出來的人才讓人可笑至極呢!這種人只能算是混事的,技術(shù)狗屁不是。  回復(fù)  更多評論
            

          # re: 做了一個JSF表格組件,分享源代碼! 2009-07-07 16:13 小李飛刀
          學(xué)習(xí)了,支持,JSF的擴(kuò)展是很靈活的,沒理由做不出來  回復(fù)  更多評論
            

          # re: 做了一個JSF表格組件,分享源代碼! 2009-11-12 14:15 瞎扯
          為什么下載代碼報“沒有權(quán)限錯誤”呢  回復(fù)  更多評論
            

          # re: 做了一個JSF表格組件,分享源代碼![未登錄] 2010-04-13 11:41 zhang
          謝謝分享,但是下載不了  回復(fù)  更多評論
            

          # re: 做了一個JSF表格組件,分享源代碼![未登錄] 2010-04-13 11:45 zhang
          怎樣下載  回復(fù)  更多評論
            

          # re: 做了一個JSF表格組件,分享源代碼![未登錄] 2011-05-30 20:11 xx
          下載不了,哪位可以發(fā)一份給我參考下呢
          djxx2004@gmail.com  回復(fù)  更多評論
            

          主站蜘蛛池模板: 肥东县| 剑川县| 新巴尔虎左旗| 章丘市| 伊宁市| 阿坝县| 五家渠市| 房山区| 宁安市| 南城县| 南涧| 罗源县| 永靖县| 新民市| 邵阳市| 德昌县| 平遥县| 长春市| 南宁市| 米林县| 盖州市| 杭锦后旗| 阳信县| 肇源县| 波密县| 榆林市| 三穗县| 基隆市| 卓尼县| 金山区| 泽库县| 长沙县| 芜湖市| 柳州市| 廊坊市| 枣阳市| 阿勒泰市| 黎川县| 宜阳县| 岗巴县| 江源县|