<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    張昊

    J-Hi(http://www.j-hi.net)

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      45 Posts :: 1 Stories :: 110 Comments :: 0 Trackbacks

    2011年5月12日 #

    http://developer.51cto.com/developer/51cto-salon-13/





    視頻點播
    《Java快速開發的分析與探索》[上](張昊)
    《Java快速開發的分析與探索》[下](張昊)
    《Java快速開發平臺使用》(肖金華)
    用戶交流與問答環節

    推薦閱讀


    51CTO電子雜志《開發月刊》

    51CTO開發頻道推出《開發月刊》電子雜志。主要內容涵蓋Java、.NET、WEB開發、數據庫和移動開發等等。從技術細節到項目管理,方方面面為開發者服務。



    往期回顧
     
    51CTO技術沙龍之IDC挑選運維經驗談
    51CTO技術沙龍之掌握網絡流量分析與系統監控
    51CTO技術沙龍之企業服務器安全攻與防
    51CTO技術沙龍之Linux系統安全
    51CTO技術沙龍之解析中小企業網絡運維
    51CTO技術沙龍之Web開發前沿技術探索與實戰
    51CTO技術沙龍之大型網站PHP開發之道
    51CTO技術沙龍之 IT技術人,茫茫職業人生路
    51CTO技術沙龍之 如何快速定位黑客攻擊
    51CTO技術沙龍之 關于企業安全運維的那些事兒
    51CTO技術沙龍之 站在業務擴展的角度看Linux運維技術
    51CTO技術沙龍之 從菜鳥到CTO,你的目標需要管理
    51CTO技術沙龍之 兩小時成為反掛馬達人
    51CTO技術沙龍之 全方位解析虛擬化
    51CTO技術沙龍之 企業基礎網絡與核心服務搭建
    51CTO技術沙龍之 負載均衡2期

    沙龍導讀與PPT下載

    51CTO技術沙龍第十三期總結:Java快速開發之路
    在2011年9月3日下午51CTO舉辦的第13期51CTO技術沙龍中,有幸請到Java開源平臺——J-Hi的兩位創始人張昊老師和肖金華老師。二位講師分別從理論和實戰來為大家介紹J-Hi,打開Java快速開發之路。查看
    PPT下載:《Java快速開發的分析與探索》(張昊)
    詳細分析快速開發與傳統開發方式在開發形式上的差異,兩個模式所存在的風險及如何規避這些風險,并對開發效率、成本及開發規范做出對比。最后闡述為什么快速開發將是以后軟件開發的趨勢。 PPT下載 | 視頻下載
    《Java快速開發平臺使用》(肖金華)
    主要介紹怎樣架構你的互聯網應用才能顯得不是那么草根,基于弱關系理論的結構化數據存儲與程序設計高性能的數據緩沖層讓你的數據離CPU再近一些。如何定位應用的性能瓶頸以及系能優化的思路。 視頻下載
     

    本期講師介紹

     
     
    J-Hi快速開發平臺團隊核心成員 張昊
    軟迅博技術發展有限公司首席架構師,開源J-Hi快速開發平臺團隊核心成員,平臺項目的主要發起者與組織者。
    軟迅博技術發展有限公司項目總監 肖金華
    開源J-Hi快速開發平臺團隊核心成員,十一年軟件開發經驗,帶領完成過多個大型項目。熟悉保險及電力行業,曾任某IT公司保險業務線架構師。
     
     

    相關Java專題


    51CTO開發頻道專訪J-Hi快速開發平臺團隊核心成員張昊先生,向大家講述J-Hi快速開發平臺從創意到研發再到產品的完整脈絡和技術領域以及對廣大愛好者的一些建議。


     

    2011年7月7日,甲骨文舉行了生活的全球性活動,以慶祝即將到來的Java 7推出。標準版Java SE 7是對Java社區和甲骨文對開發語言和技術持續承諾的一種肯定。

      

    沙龍現場照片


     
     
     
     
     
     
     
     
     
     
     



    posted @ 2011-09-16 23:48 張昊 閱讀(1196) | 評論 (2)編輯 收藏

    http://weibo.com/javahi
    posted @ 2011-09-09 16:26 張昊 閱讀(880) | 評論 (1)編輯 收藏


    描述:在DWZ版中lookup的處理機制與經典的完全不同,對于lookup有兩種展現形式,一種是通過點擊lookup圖標彈出對話框后帶回選中的值,另一種是通過在文本框中輸入相應信息從而實現聯機式的查找帶回效果。從實現目的來看,無非是讓lookup的實體的主鍵值帶回到hidden的一個元素中,而其它值只是作為顯示參考之用,與底層的數據庫結構與數據庫表無關。一個完整的lookup由如下html元素構成:1)一個hidden用于保存帶回實體主鍵的ID值;如果要實現缺省的lookup過濾或排序可以相應的pageInfohidden元素,具體實現方式的用例參見《HowTo手冊》;2ntext用于顯示帶回的多個數據帶回項(注意:因為帶回的數據項與數據訪問層也就是數據庫表無關,因此每個textname都有一個hi_作為前綴);3)一個lookup有且只有一個主帶回項,只有主帶回項的文本框是可編輯的并且只有主帶回項會有lookup圖標也就是html的中的a元素。

    擴展屬性名

    lookupGroup

    lookup組可以理解為當前實體的名字,如果當前lookup組件是主實體中,則lookupGroup就是實體名,如果當前lookup組件在從實體(也就是明細表的lookup)中,則lookupGroup就是明細的集合屬性名

    lookupName

    lookup名可以理解為當前lookup實體的屬性名。從整體的DWZ框架來分析,實際上所有的tab都在一個IE窗口,也就是說JS文件在打開瀏覽器只會加載一次。這就產生了必須要保證每一個html元素的唯一性,即使是在不同的tab下也是如此。對于lookup來說,是通過lookupGroup+lookupName來確定元素的唯一性的。

    suggestClass

    主帶回項才會有該屬性,實現聯想查找帶回

    lookup實體的POJO類的全限定名

    searchFields

    查詢過濾的屬性名列表,以逗號分隔。例如帶回HiUser,該屬性的值為”fullName,userNum”,在文本框中001則平臺會查詢姓名或者是編號為001的所有用戶

    callback

    回調方法名,在查找帶回值后系統會回調該屬性的值的方法,以實現您對帶回后的特殊處理。例如callback=fun,那么在帶回值后系統會自動調用fun方法,并會自動傳入兩個參數fun(json,index),其中json:是帶回的完整json對象,index:是索引值,主要用于明細的帶回時要提供是第幾條明細記錄

     

    場景描述:一個會員編輯頁面要指定該會員所在的省份、城市、地區,要求在選擇省份后會自動過濾該省份的城市,地區以此類推。

           以下所有步驟只是修改OrganizationEdit.jsp文件,即可

    步驟一、為省份的主帶回項加callback回調方法,并在實現該js方法

    <input type="text" class="textInput" name="organization.hi_province.name" value="${organization.province.name}" callback="processProvince"

        function processProvince(json){

           document.getElementById("pageInfo.province.f_id").value = json.id;

        } //該方法的目的是在選擇某個省份后將該省份的ID值放到指定的hidden元素中

    步驟二、為城市加一個用于過濾的hidden元素,注意processProvince()方法中的賦值語句就是該hidden元素;用于過濾的name必須與PageInfo的具體類相對應;必須要指定lookupGrouplookupName

    <input type="hidden" lookupGroup="organization" lookupName="city" name="pageInfo.province.f_id" id="pageInfo.province.f_id" value=""/>

        步驟三、為城市的主帶回項加callback回調方法,并在實現該js方法

    <input type="text" class="textInput" name="organization.hi_city.name" value="${organization.city.name}callback="processCity"

        function processCity(json){

           document.getElementById("pageInfo.city.f_id").value = json.id;

    }

    步驟四、為地區加一個用于過濾的hidden元素

    <input type="hidden" name="pageInfo.city.f_id" id="pageInfo.city.f_id" lookupGroup="organization" lookupName="region" value=""/>

    總結:級聯下拉實際上是lookup的一個變種形式,主要的思想是為你要級聯的下拉的lookup加入過濾項,例如在城市加一個省份的過濾項,在選擇省份時后,會通過回調方法將這個過濾項的值存到該過濾項中。這樣逐級過濾就實現了級聯下拉的效果.

    posted @ 2011-06-03 17:53 張昊 閱讀(2273) | 評論 (5)編輯 收藏

           大家可以簡單將J-Hi建模工具理解為數據庫的E-R圖,每個實體就對應一個數據庫的表,而實體中每個屬性就對應數據庫表的一個字段。那么實體與實體之間的關系或表與表的關系又是如何描述的呢?

           對于數據庫表的關系大體可分為,如下幾種形式

           many-to-one:相當于一個數據庫表的字段(外鍵)對應另一張數據庫表的主鍵,對于J-Hi來說,就是一個lookup(查找帶回)。即一個實體中的某個屬性是lookup類型,這個屬性會lookup另一個實體。對lookup定義的操作步驟請參見“應用開發視頻”。頁面中的展示形式,例如你有一個報銷單,要lookup用戶,那么平臺就會自動將用戶的名稱帶回來,并在數據庫中將用戶的ID值保存到報銷單表的相應字段中。

     

           one-to-many:相當于一個數據庫表下面會有一個或多個明細表,例如一個報銷單是主表而報銷單明細是明細表。在數據庫端的實現形式為,在明細表中有一個主表的外鍵ID字段。在J-Hi中我們稱之為引用,具體操作見聯機幫助

     

           one-to-one:所謂一對一的關系在數據庫上的理解為,B表每加一條記錄A表也會隨著增加一條記錄,在J-Hi中的表現形式為實體繼承

           對于實體的繼承,不只是簡單的表one-to-one關系,實體的繼承還包括所有的java類的繼承關系,JSP頁面的整合等等

          

           many-to-many:多對多是一種復雜的表關系,J-Hi是通過中間過渡表來實現這種多對多的關系,例如一個項目可以有多個成員,而一個成員又有可能在多個項目中,建模的圖為

    posted @ 2011-05-31 10:34 張昊 閱讀(1104) | 評論 (0)編輯 收藏

    1.前臺頁面:

    //自定義一個回調函數ajaxDone

    <form action="expert_BaseInformationSave.action?navTabId=expert_BaseInformationList&callbackType=closeCurrent&ajax=1"

    method="post" class="pageForm required-validate" onsubmit="return validateCallback(this, ajaxDone)">

     

    //回調函數

    <script type="text/javascript">

           function ajaxDone(json)

           {

                  alert(json.expert.name);

           }

    </script>

     

    2.后臺代碼:

    public class Expert_BaseInformationSaveAction extends BaseAction implements SynchronizationData{

           private Expert_BaseInformation expert_BaseInformation;

           private JSONObject json;

     

           public String execute() throws Exception {

                  Expert_BaseInformationManager expert_BaseInformationMgr = (Expert_BaseInformationManager)

    SpringContextHolder.getBean(Expert_BaseInformation.class);

                  if(super.perExecute(expert_BaseInformation)!= null) return returnCommand();

                  expert_BaseInformationMgr.saveExpert_BaseInformation(expert_BaseInformation);

                  super.postExecute(expert_BaseInformation);

                  json = new JSONObject("expert", expert_BaseInformation, "name, gender, unit");

                 

                  return "json";

           }

          

           public Expert_BaseInformation getExpert_BaseInformation() {

                  return expert_BaseInformation;

           }

     

           public void setExpert_BaseInformation(Expert_BaseInformation expert_BaseInformation) {

                  this.expert_BaseInformation = expert_BaseInformation;

           }

     

           public JSONObject getJson() {

                  return json;

           }     

    }

     

    注意:action中必須定義public JSONObject getJson() {

                  return json;

           } 否則前臺無法獲取json數據。



                                         注:該文檔由J-Hi愛好者"笨笨"提供,他的QQ號為289542213,歡迎大家與他在技術上多多交流


    posted @ 2011-05-29 22:21 張昊 閱讀(880) | 評論 (0)編輯 收藏

    本文主要講解J-hi中樹的過濾。以員工部門樹為例。

    要求在點擊某個員工時,能夠查看到該員工所在的部門。

     

     

               1-部門樹

    下圖2是所有員工列表:

    -2

    當點擊王五時,顯示王五所在的部門結構樹如圖3

          -3

    主要代碼部分:

    Jsp超鏈接代碼:

    <a

    href="tree.action?menuName=orgList&orgId=${item.org.id}" target="dialog">${item.org.orgName}</a>

    注意:orgId是動態傳入的參數,這里指該員工所在的部門編號。

    2、在himenu-config.xml中配置部門樹的后面加上這么一段

    <void property="filter">

       <string>org.cis.filter.orgCollectionProcessor</string>

     </void>

    注意:string標簽內的是寫過濾數據的類。對樹的數據進行過濾,提供兩種接口方式對數據進行過濾 MenuFilterProcessor 在獲取數據之前填加過濾器;MenuCollectionProcessor 在獲取數據之后再對數據做整理.具體方法查看java-docAPI

    而例子的orgCollectionProcessor類代碼:

    public class orgCollectionProcessor implements MenuCollectionProcessor {

     

        public Collection getCollection(Collection coll, Map<String, String> map) {

           // TODO Auto-generated method stub

           //coll - 當前節點下一級節點的數據集合

            //map 動態的傳入數據,map的形式

           //傳入一個員工的所在的部門Id,返回該員工所在的部門結構樹

           int orgId=Integer.parseInt(map.get("orgId").toString());

           for (Iterator iterator = coll.iterator(); iterator.hasNext();) {

               Object obj = (Object) iterator.next();       

               if(obj instanceof HiOrg){

                  HiOrg hiorg = (HiOrg)obj;             

                  if(hiorg.getId()!=orgId) {

                      iterator.remove();

                      coll.remove(obj);

                  }

               }

           }

           return coll;

        }  

    }


                                         注:該文檔由J-Hi愛好者"無可"提供,他的QQ號為924372739,歡迎大家與他在技術上多多交流


    posted @ 2011-05-19 22:04 張昊 閱讀(848) | 評論 (0)編輯 收藏

    樹形菜單能很好的呈現菜單項之前的從屬關系,結構清晰明了。J-hi平臺提供了自定義樹形菜單的功能,通過簡單的配置即可實現。

    本文主要介紹通過樹形菜單選擇帶回節點值的實現方法。以選擇帶回行政區劃位置為例。

    數據庫表設計:

    默認帶回頁選擇界面:

    通過jhi自動生成代碼的功能,對于lookup xzqhwz的字段默認是如上帶回頁面,顯然并不能表現行政區劃位置之間的主從關系。

    樹形帶回頁面:

    而如果實現如下頁面的展示,將會清晰方便許多。

    雙擊即可帶回節點,也可通過配置帶回節點的各級父節點。

    下面是配置的方法:

    配置方法:

    修改xml

    修改C:"Program"hi-studio"eclipse"workspace"earch5"web"WEB-INF"config"himenu-config.xml

    在代碼末尾:

    </object>

    </java>

    之前插入:(注意修改其中參數)

     <void method="put">

       <string>zdtree</string>

       <object class="org.hi.base.menu.strutsmenu.WebDynamicMenuDefine">

        <void property="keymap">

         <object class="java.util.HashMap">

          <void method="put">

           <string>id</string>

           <string>parentxzqhwz</string>

          </void>

         </object>

        </void>

        <void property="parent">

         <string>id</string>

        </void>

        <void property="child">

         <string>parentxzqhwz</string>

        </void>

        <void property="childValue">

         <int>0</int>

    <!

    新版本jhi應為:<string>0</string>

    > 

        </void>

        <void property="menuName">

         <string>zdtree</string>

        </void>

        <void property="beanName">

         <string>org.hi.zdtree.model.Xzqhwz</string>

        </void>

        <void property="submenuName">

         <string>zdtree</string>

        </void>

        <void property="title">

         <string>行政區劃位置</string>

        </void>

        <void property="titleField">

         <string>xzqhwz</string>

        </void>

        <void property="needShow">

         <boolean>true</boolean>

        </void>

        <void property="javascript">

         <string>

        function backAgent(id,orgName){

    if(opener.document.getElementById('yzjbxx.xzqhwz')!=null){

               opener.document.getElementById('yzjbxx.xzqhwz').value=orgName;

               }

    <!帶回到相應的頁面的相應文本框。

           else{ opener.document.getElementById('xzqhwz.pxzqhwz').value=orgName;

               opener.document.getElementById('xzqhwz.parentxzqhwz.id').value=id;

               window.close();

    }

           }

         </string>

        </void>

        <void property="action">

         <string>{js}backAgent([#id],"'[#xzqhwz]"');</string>

    <!在樹型結構上通過雙擊一個節點,獲取帶回該節點的各級上節點

    <string>{js}backAgent([#id],"'[#parentxzqhwz.parentxzqhwz.parentxzqhwz.xzqhwz][#parentxzqhwz.parentxzqhwz.xzqhwz][#parentxzqhwz.xzqhwz][#xzqhwz]"');</string>

    > 

        </void>

       </object>

     </void>

    修改XzqhwzEdit.jsp頁面

    C:"Program"hi-studio"eclipse"workspace"earch5"web"zdtree"XzqhwzEdit.jsp

    onclick="xzqhwz_lookupPOP('parentxzqhwz')"

    改為:

    onclick="window.open('/tree.action?menuName=zdtree','部門','width=300,height=500,left=10,top=20,location=no,status=no')"

    這樣,到Xzqhwz的頁面,點擊父節點的帶回按鈕即可看到效果,同樣lookupxzqhwz字段的地方也修改Edit.jsp頁面的onclick動作就行啦。



    該文檔是對J-Hi樹形的入門級介紹,J-Hi的樹功能還有:節點的過濾,lazy加載,一個節點可以多個圖標、復選框效果,多個實體組合形成一棵樹,我們將在以后繼續講解


                                         注:該文檔由J-Hi愛好者"馮思豪"提供,他的QQ號為382600911,歡迎大家與他在技術上多多交流

    posted @ 2011-05-12 00:58 張昊 閱讀(993) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲精品亚洲人成在线观看麻豆| 国产成人A亚洲精V品无码 | 黄页视频在线观看免费| 在线观看AV片永久免费| 亚洲ts人妖网站| 99视频免费播放| 亚洲黄色三级视频| 免费看片在线观看| 亚洲免费二区三区| 最近中文字幕无吗免费高清 | 少妇中文字幕乱码亚洲影视| 久草福利资源网站免费| 亚洲人成在线观看| 91免费国产精品| 亚洲一级毛片免费看| 免费人成视频在线| 精品国产日韩亚洲一区在线| 亚洲成av人片在线观看天堂无码| 日韩大片免费观看视频播放| 久久久久亚洲AV成人网| 99爱免费观看视频在线| 亚洲一区二区三区91| 国产精品无码一区二区三区免费| 国产精品亚洲一区二区三区在线观看| 亚洲色偷拍区另类无码专区| baoyu116.永久免费视频| 亚洲精品456在线播放| 在线a毛片免费视频观看| 乱爱性全过程免费视频| 亚洲AV人无码综合在线观看 | 黄网址在线永久免费观看| 污视频网站免费观看| 久久亚洲伊人中字综合精品| 国产免费不卡视频| 亚洲国产成人AV网站| 亚洲午夜久久久久久久久久| 亚洲人成在线免费观看| 在线观看亚洲免费视频| 久久久久久亚洲av成人无码国产| 国产成人免费爽爽爽视频| 久久免费视频一区|