<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 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      45 Posts :: 1 Stories :: 110 Comments :: 0 Trackbacks

    2011年5月8日 #

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





    視頻點(diǎn)播
    《Java快速開(kāi)發(fā)的分析與探索》[上](張昊)
    《Java快速開(kāi)發(fā)的分析與探索》[下](張昊)
    《Java快速開(kāi)發(fā)平臺(tái)使用》(肖金華)
    用戶(hù)交流與問(wèn)答環(huán)節(jié)

    推薦閱讀


    51CTO電子雜志《開(kāi)發(fā)月刊》

    51CTO開(kāi)發(fā)頻道推出《開(kāi)發(fā)月刊》電子雜志。主要內(nèi)容涵蓋Java、.NET、WEB開(kāi)發(fā)、數(shù)據(jù)庫(kù)和移動(dòng)開(kāi)發(fā)等等。從技術(shù)細(xì)節(jié)到項(xiàng)目管理,方方面面為開(kāi)發(fā)者服務(wù)。



    往期回顧
     
    51CTO技術(shù)沙龍之IDC挑選運(yùn)維經(jīng)驗(yàn)談
    51CTO技術(shù)沙龍之掌握網(wǎng)絡(luò)流量分析與系統(tǒng)監(jiān)控
    51CTO技術(shù)沙龍之企業(yè)服務(wù)器安全攻與防
    51CTO技術(shù)沙龍之Linux系統(tǒng)安全
    51CTO技術(shù)沙龍之解析中小企業(yè)網(wǎng)絡(luò)運(yùn)維
    51CTO技術(shù)沙龍之Web開(kāi)發(fā)前沿技術(shù)探索與實(shí)戰(zhàn)
    51CTO技術(shù)沙龍之大型網(wǎng)站PHP開(kāi)發(fā)之道
    51CTO技術(shù)沙龍之 IT技術(shù)人,茫茫職業(yè)人生路
    51CTO技術(shù)沙龍之 如何快速定位黑客攻擊
    51CTO技術(shù)沙龍之 關(guān)于企業(yè)安全運(yùn)維的那些事兒
    51CTO技術(shù)沙龍之 站在業(yè)務(wù)擴(kuò)展的角度看Linux運(yùn)維技術(shù)
    51CTO技術(shù)沙龍之 從菜鳥(niǎo)到CTO,你的目標(biāo)需要管理
    51CTO技術(shù)沙龍之 兩小時(shí)成為反掛馬達(dá)人
    51CTO技術(shù)沙龍之 全方位解析虛擬化
    51CTO技術(shù)沙龍之 企業(yè)基礎(chǔ)網(wǎng)絡(luò)與核心服務(wù)搭建
    51CTO技術(shù)沙龍之 負(fù)載均衡2期

    沙龍導(dǎo)讀與PPT下載

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

    本期講師介紹

     
     
    J-Hi快速開(kāi)發(fā)平臺(tái)團(tuán)隊(duì)核心成員 張昊
    軟迅博技術(shù)發(fā)展有限公司首席架構(gòu)師,開(kāi)源J-Hi快速開(kāi)發(fā)平臺(tái)團(tuán)隊(duì)核心成員,平臺(tái)項(xiàng)目的主要發(fā)起者與組織者。
    軟迅博技術(shù)發(fā)展有限公司項(xiàng)目總監(jiān) 肖金華
    開(kāi)源J-Hi快速開(kāi)發(fā)平臺(tái)團(tuán)隊(duì)核心成員,十一年軟件開(kāi)發(fā)經(jīng)驗(yàn),帶領(lǐng)完成過(guò)多個(gè)大型項(xiàng)目。熟悉保險(xiǎn)及電力行業(yè),曾任某IT公司保險(xiǎn)業(yè)務(wù)線架構(gòu)師。
     
     

    相關(guān)Java專(zhuān)題


    51CTO開(kāi)發(fā)頻道專(zhuān)訪J-Hi快速開(kāi)發(fā)平臺(tái)團(tuán)隊(duì)核心成員張昊先生,向大家講述J-Hi快速開(kāi)發(fā)平臺(tái)從創(chuàng)意到研發(fā)再到產(chǎn)品的完整脈絡(luò)和技術(shù)領(lǐng)域以及對(duì)廣大愛(ài)好者的一些建議。


     

    2011年7月7日,甲骨文舉行了生活的全球性活動(dòng),以慶祝即將到來(lái)的Java 7推出。標(biāo)準(zhǔn)版Java SE 7是對(duì)Java社區(qū)和甲骨文對(duì)開(kāi)發(fā)語(yǔ)言和技術(shù)持續(xù)承諾的一種肯定。

      

    沙龍現(xiàn)場(chǎng)照片


     
     
     
     
     
     
     
     
     
     
     



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

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


    描述:在DWZ版中lookup的處理機(jī)制與經(jīng)典的完全不同,對(duì)于lookup有兩種展現(xiàn)形式,一種是通過(guò)點(diǎn)擊lookup圖標(biāo)彈出對(duì)話框后帶回選中的值,另一種是通過(guò)在文本框中輸入相應(yīng)信息從而實(shí)現(xiàn)聯(lián)機(jī)式的查找?guī)Щ匦Ч?。從?shí)現(xiàn)目的來(lái)看,無(wú)非是讓lookup的實(shí)體的主鍵值帶回到hidden的一個(gè)元素中,而其它值只是作為顯示參考之用,與底層的數(shù)據(jù)庫(kù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)表無(wú)關(guān)。一個(gè)完整的lookup由如下html元素構(gòu)成:1)一個(gè)hidden用于保存帶回實(shí)體主鍵的ID值;如果要實(shí)現(xiàn)缺省的lookup過(guò)濾或排序可以相應(yīng)的pageInfohidden元素,具體實(shí)現(xiàn)方式的用例參見(jiàn)《HowTo手冊(cè)》;2n個(gè)text用于顯示帶回的多個(gè)數(shù)據(jù)帶回項(xiàng)(注意:因?yàn)閹Щ氐臄?shù)據(jù)項(xiàng)與數(shù)據(jù)訪問(wèn)層也就是數(shù)據(jù)庫(kù)表無(wú)關(guān),因此每個(gè)textname都有一個(gè)hi_作為前綴);3)一個(gè)lookup有且只有一個(gè)主帶回項(xiàng),只有主帶回項(xiàng)的文本框是可編輯的并且只有主帶回項(xiàng)會(huì)有lookup圖標(biāo)也就是html的中的a元素。

    擴(kuò)展屬性名

    lookupGroup

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

    lookupName

    lookup名可以理解為當(dāng)前lookup實(shí)體的屬性名。從整體的DWZ框架來(lái)分析,實(shí)際上所有的tab都在一個(gè)IE窗口,也就是說(shuō)JS文件在打開(kāi)瀏覽器只會(huì)加載一次。這就產(chǎn)生了必須要保證每一個(gè)html元素的唯一性,即使是在不同的tab下也是如此。對(duì)于lookup來(lái)說(shuō),是通過(guò)lookupGroup+lookupName來(lái)確定元素的唯一性的。

    suggestClass

    主帶回項(xiàng)才會(huì)有該屬性,實(shí)現(xiàn)聯(lián)想查找?guī)Щ?/span>

    lookup實(shí)體的POJO類(lèi)的全限定名

    searchFields

    查詢(xún)過(guò)濾的屬性名列表,以逗號(hào)分隔。例如帶回HiUser,該屬性的值為”fullName,userNum”,在文本框中001則平臺(tái)會(huì)查詢(xún)姓名或者是編號(hào)為001的所有用戶(hù)

    callback

    回調(diào)方法名,在查找?guī)Щ刂岛笙到y(tǒng)會(huì)回調(diào)該屬性的值的方法,以實(shí)現(xiàn)您對(duì)帶回后的特殊處理。例如callback=fun,那么在帶回值后系統(tǒng)會(huì)自動(dòng)調(diào)用fun方法,并會(huì)自動(dòng)傳入兩個(gè)參數(shù)fun(json,index),其中json:是帶回的完整json對(duì)象,index:是索引值,主要用于明細(xì)的帶回時(shí)要提供是第幾條明細(xì)記錄

     

    場(chǎng)景描述:一個(gè)會(huì)員編輯頁(yè)面要指定該會(huì)員所在的省份、城市、地區(qū),要求在選擇省份后會(huì)自動(dòng)過(guò)濾該省份的城市,地區(qū)以此類(lèi)推。

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

    步驟一、為省份的主帶回項(xiàng)加callback回調(diào)方法,并在實(shí)現(xiàn)該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;

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

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

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

        步驟三、為城市的主帶回項(xiàng)加callback回調(diào)方法,并在實(shí)現(xiàn)該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;

    }

    步驟四、為地區(qū)加一個(gè)用于過(guò)濾的hidden元素

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

    總結(jié):級(jí)聯(lián)下拉實(shí)際上是lookup的一個(gè)變種形式,主要的思想是為你要級(jí)聯(lián)的下拉的lookup加入過(guò)濾項(xiàng),例如在城市加一個(gè)省份的過(guò)濾項(xiàng),在選擇省份時(shí)后,會(huì)通過(guò)回調(diào)方法將這個(gè)過(guò)濾項(xiàng)的值存到該過(guò)濾項(xiàng)中。這樣逐級(jí)過(guò)濾就實(shí)現(xiàn)了級(jí)聯(lián)下拉的效果.

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

           大家可以簡(jiǎn)單將J-Hi建模工具理解為數(shù)據(jù)庫(kù)的E-R圖,每個(gè)實(shí)體就對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)的表,而實(shí)體中每個(gè)屬性就對(duì)應(yīng)數(shù)據(jù)庫(kù)表的一個(gè)字段。那么實(shí)體與實(shí)體之間的關(guān)系或表與表的關(guān)系又是如何描述的呢?

           對(duì)于數(shù)據(jù)庫(kù)表的關(guān)系大體可分為,如下幾種形式

           many-to-one:相當(dāng)于一個(gè)數(shù)據(jù)庫(kù)表的字段(外鍵)對(duì)應(yīng)另一張數(shù)據(jù)庫(kù)表的主鍵,對(duì)于J-Hi來(lái)說(shuō),就是一個(gè)lookup(查找?guī)Щ兀?。即一個(gè)實(shí)體中的某個(gè)屬性是lookup類(lèi)型,這個(gè)屬性會(huì)lookup另一個(gè)實(shí)體。對(duì)lookup定義的操作步驟請(qǐng)參見(jiàn)“應(yīng)用開(kāi)發(fā)視頻”。頁(yè)面中的展示形式,例如你有一個(gè)報(bào)銷(xiāo)單,要lookup用戶(hù),那么平臺(tái)就會(huì)自動(dòng)將用戶(hù)的名稱(chēng)帶回來(lái),并在數(shù)據(jù)庫(kù)中將用戶(hù)的ID值保存到報(bào)銷(xiāo)單表的相應(yīng)字段中。

     

           one-to-many:相當(dāng)于一個(gè)數(shù)據(jù)庫(kù)表下面會(huì)有一個(gè)或多個(gè)明細(xì)表,例如一個(gè)報(bào)銷(xiāo)單是主表而報(bào)銷(xiāo)單明細(xì)是明細(xì)表。在數(shù)據(jù)庫(kù)端的實(shí)現(xiàn)形式為,在明細(xì)表中有一個(gè)主表的外鍵ID字段。在J-Hi中我們稱(chēng)之為引用,具體操作見(jiàn)聯(lián)機(jī)幫助

     

           one-to-one:所謂一對(duì)一的關(guān)系在數(shù)據(jù)庫(kù)上的理解為,B表每加一條記錄A表也會(huì)隨著增加一條記錄,在J-Hi中的表現(xiàn)形式為實(shí)體繼承

           對(duì)于實(shí)體的繼承,不只是簡(jiǎn)單的表one-to-one關(guān)系,實(shí)體的繼承還包括所有的java類(lèi)的繼承關(guān)系,JSP頁(yè)面的整合等等

          

           many-to-many:多對(duì)多是一種復(fù)雜的表關(guān)系,J-Hi是通過(guò)中間過(guò)渡表來(lái)實(shí)現(xiàn)這種多對(duì)多的關(guān)系,例如一個(gè)項(xiàng)目可以有多個(gè)成員,而一個(gè)成員又有可能在多個(gè)項(xiàng)目中,建模的圖為

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

    1.前臺(tái)頁(yè)面:

    //自定義一個(gè)回調(diào)函數(shù)ajaxDone

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

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

     

    //回調(diào)函數(shù)

    <script type="text/javascript">

           function ajaxDone(json)

           {

                  alert(json.expert.name);

           }

    </script>

     

    2.后臺(tái)代碼:

    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;

           }, 否則前臺(tái)無(wú)法獲取json數(shù)據(jù)。



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


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

    本文主要講解J-hi中樹(shù)的過(guò)濾。以員工部門(mén)樹(shù)為例。

    要求在點(diǎn)擊某個(gè)員工時(shí),能夠查看到該員工所在的部門(mén)。

     

     

               1-部門(mén)樹(shù)

    下圖2是所有員工列表:

    -2

    當(dāng)點(diǎn)擊王五時(shí),顯示王五所在的部門(mén)結(jié)構(gòu)樹(shù)如圖3。

          -3

    主要代碼部分:

    、Jsp超鏈接代碼:

    <a

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

    注意:orgId是動(dòng)態(tài)傳入的參數(shù),這里指該員工所在的部門(mén)編號(hào)。

    2、在himenu-config.xml中配置部門(mén)樹(shù)的后面加上這么一段

    <void property="filter">

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

     </void>

    注意:string標(biāo)簽內(nèi)的是寫(xiě)過(guò)濾數(shù)據(jù)的類(lèi)。對(duì)樹(shù)的數(shù)據(jù)進(jìn)行過(guò)濾,提供兩種接口方式對(duì)數(shù)據(jù)進(jìn)行過(guò)濾 MenuFilterProcessor 在獲取數(shù)據(jù)之前填加過(guò)濾器;MenuCollectionProcessor 在獲取數(shù)據(jù)之后再對(duì)數(shù)據(jù)做整理.具體方法查看java-docAPI。

    而例子的orgCollectionProcessor類(lèi)代碼:

    public class orgCollectionProcessor implements MenuCollectionProcessor {

     

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

           // TODO Auto-generated method stub

           //coll - 當(dāng)前節(jié)點(diǎn)下一級(jí)節(jié)點(diǎn)的數(shù)據(jù)集合

            //map 動(dòng)態(tài)的傳入數(shù)據(jù),map的形式

           //傳入一個(gè)員工的所在的部門(mén)Id,返回該員工所在的部門(mén)結(jié)構(gòu)樹(shù)

           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愛(ài)好者"無(wú)可"提供,他的QQ號(hào)為924372739,歡迎大家與他在技術(shù)上多多交流


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

    樹(shù)形菜單能很好的呈現(xiàn)菜單項(xiàng)之前的從屬關(guān)系,結(jié)構(gòu)清晰明了。J-hi平臺(tái)提供了自定義樹(shù)形菜單的功能,通過(guò)簡(jiǎn)單的配置即可實(shí)現(xiàn)。

    本文主要介紹通過(guò)樹(shù)形菜單選擇帶回節(jié)點(diǎn)值的實(shí)現(xiàn)方法。以選擇帶回行政區(qū)劃位置為例。

    數(shù)據(jù)庫(kù)表設(shè)計(jì):

    默認(rèn)帶回頁(yè)選擇界面:

    通過(guò)jhi自動(dòng)生成代碼的功能,對(duì)于lookup xzqhwz的字段默認(rèn)是如上帶回頁(yè)面,顯然并不能表現(xiàn)行政區(qū)劃位置之間的主從關(guān)系。

    樹(shù)形帶回頁(yè)面:

    而如果實(shí)現(xiàn)如下頁(yè)面的展示,將會(huì)清晰方便許多。

    雙擊即可帶回節(jié)點(diǎn),也可通過(guò)配置帶回節(jié)點(diǎn)的各級(jí)父節(jié)點(diǎn)。

    下面是配置的方法:

    配置方法:

    修改xml

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

    在代碼末尾:

    </object>

    </java>

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

     <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應(yīng)為:<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>行政區(qū)劃位置</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;

               }

    <!帶回到相應(yīng)的頁(yè)面的相應(yīng)文本框。

           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>

    <!在樹(shù)型結(jié)構(gòu)上通過(guò)雙擊一個(gè)節(jié)點(diǎn),獲取帶回該節(jié)點(diǎn)的各級(jí)上節(jié)點(diǎn)

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

    > 

        </void>

       </object>

     </void>

    修改XzqhwzEdit.jsp頁(yè)面

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

    onclick="xzqhwz_lookupPOP('parentxzqhwz')"

    改為:

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

    這樣,到Xzqhwz的頁(yè)面,點(diǎn)擊父節(jié)點(diǎn)的帶回按鈕即可看到效果,同樣lookupxzqhwz字段的地方也修改Edit.jsp頁(yè)面的onclick動(dòng)作就行啦。



    該文檔是對(duì)J-Hi樹(shù)形的入門(mén)級(jí)介紹,J-Hi的樹(shù)功能還有:節(jié)點(diǎn)的過(guò)濾,lazy加載,一個(gè)節(jié)點(diǎn)可以多個(gè)圖標(biāo)、復(fù)選框效果,多個(gè)實(shí)體組合形成一棵樹(shù),我們將在以后繼續(xù)講解


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

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

        J-Hi平臺(tái)在考慮到開(kāi)發(fā)時(shí)與發(fā)布后對(duì)信息、安全、效率等方面的要求不同,從而提供了設(shè)置開(kāi)發(fā)模式與發(fā)布模式的開(kāi)關(guān)。這個(gè)開(kāi)關(guān)配置在src下的hiFrameworkConfig.properties文件中。
    hi.depolyment.published=true
        下面讓我們就這個(gè)開(kāi)關(guān)項(xiàng)做如下分析,如果值為true,也就是發(fā)布模式,它到底會(huì)影響哪些東西:

    信息內(nèi)容
       1)菜單中“權(quán)限”、“權(quán)限資源”將不在顯示,因?yàn)橐坏⒆龊玫捻?xiàng)目發(fā)布后,這些信息是不能讓客戶(hù)維護(hù)的。
       2)菜單中“觸發(fā)器”、“消息管理”將不可見(jiàn),因?yàn)橐坏┒〞r(shí)服務(wù)設(shè)定好,一般來(lái)說(shuō)客戶(hù)很少會(huì)調(diào)整,即使是調(diào)整也應(yīng)該是由開(kāi)發(fā)人員來(lái)調(diào)整觸發(fā)的周期與頻率。對(duì)于消息管理也是一樣。
       3) 整個(gè)“國(guó)際化”菜單項(xiàng)全部不顯示,這其中包括“多語(yǔ)言參數(shù)”、“語(yǔ)言編碼”、“時(shí)區(qū)”,原因這些內(nèi)部均應(yīng)該在開(kāi)發(fā)過(guò)程中將信息內(nèi)容一并編輯完成。比如有一個(gè)語(yǔ)言編碼就要有一套多語(yǔ)言參數(shù)與之對(duì)應(yīng),因些一旦系統(tǒng)上線,所有國(guó)際化部分的維護(hù)功能也應(yīng)該同時(shí)完成。
       4)“應(yīng)用配置”列表中,“刪除”圖標(biāo)將不再顯示,因?yàn)槿绻到y(tǒng)上線,系統(tǒng)中的一些基礎(chǔ)配置項(xiàng)是不能刪除,而只能更改的

    對(duì)于這個(gè)功能的控制,是在main.jsp中,加入一個(gè)變量,代碼如下
    <%// 是否已發(fā)布的開(kāi)關(guān),其目的是如果為true則關(guān)閉那些對(duì)終端用戶(hù)不可見(jiàn)的功能按鈕 %>
    <ws:set name="published" value="@org.hi.framework.HiConfigHolder@getPublished()" />
    建議大家以后在自己采用J-Hi開(kāi)發(fā)的系統(tǒng)中也可以采用該方式來(lái)控制頁(yè)面,這樣就可以做到即不影響開(kāi)發(fā),而在項(xiàng)目提交給用戶(hù)時(shí)同樣保證某些只在開(kāi)發(fā)時(shí)才能用到的按鈕或功能,只要改變一個(gè)開(kāi)關(guān)就可以控制。 

    安全
       如果采用了發(fā)布模式后,頁(yè)面提交的URL將會(huì)被加密,而開(kāi)發(fā)模式URL則是以明文顯示,開(kāi)關(guān)則試前后URL的效果如下:
    http://localhost:8080/hiUserEdit.action?hiUser.id=1
    http://localhost:8080/hiUserEdit.action?cf4a9619dd97fc2689fb63048237404f
       由此可以看出URL問(wèn)號(hào)后的參數(shù)部分全部通過(guò)了加密處理,這樣使您做出的系統(tǒng)更安全,通過(guò)使別人URL分析不出你要獲取的信息參與也推導(dǎo)不出系統(tǒng)的結(jié)構(gòu)

    效率
       1)如果是發(fā)布模式,DWZ版的所有js文件將采用壓縮的文件,而非一個(gè)一個(gè)的離散文件,這樣系統(tǒng)的傳輸?shù)膬?nèi)容會(huì)更少,具體的方式參見(jiàn)styles.jsp文件
       2)如果是發(fā)布模式,系統(tǒng)在啟動(dòng)時(shí)一次性加載枚舉實(shí)體、枚舉值、多語(yǔ)言參數(shù)、應(yīng)用配置這些常量性的信息進(jìn)入緩存,在取這些信息時(shí)系統(tǒng)會(huì)自動(dòng)從緩沖中取而并非每都要查詢(xún)數(shù)據(jù)庫(kù)。舉例來(lái)說(shuō),性別是一個(gè)下拉的枚舉,如果是發(fā)布模式只直接從緩沖區(qū)中取數(shù)據(jù),而如果是開(kāi)發(fā)模式它就會(huì)去數(shù)據(jù)庫(kù)中取數(shù)據(jù),如果是一個(gè)人員列表,那么有幾個(gè)要顯示枚舉的地方就要去數(shù)據(jù)庫(kù)取幾次。因此開(kāi)發(fā)模式的運(yùn)行效率要遠(yuǎn)遠(yuǎn)低于發(fā)布模式,但開(kāi)發(fā)模式更有實(shí)效性,只要數(shù)據(jù)有任何變化都可以實(shí)體的反應(yīng)出來(lái),即使是在同一個(gè)事務(wù)中,而發(fā)布模式只能在一個(gè)事務(wù)完成之后再能做數(shù)據(jù)同步處理(即內(nèi)存與數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步)
    posted @ 2011-05-08 22:12 張昊 閱讀(721) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 中文在线日本免费永久18近| 免费看一级高潮毛片| 处破女第一次亚洲18分钟| 一级全免费视频播放| 99re6在线视频精品免费| 亚洲一级毛片免费看| www.亚洲一区| 亚洲第一成年人网站| 爱情岛论坛免费视频| 麻豆高清免费国产一区| 免费一级毛片正在播放| 亚洲一区二区影院| 黄色一级视频免费观看| 亚洲一区二区免费视频| 亚洲日韩VA无码中文字幕 | 亚洲国色天香视频| 一区二区视频在线免费观看| 免费人成网站在线观看10分钟| 亚洲中文字幕无码永久在线 | 亚洲一级片免费看| 免费人成在线视频| 亚洲国产综合专区电影在线| 国产精品亚洲一区二区三区久久| 3d动漫精品啪啪一区二区免费| 亚洲精品人成无码中文毛片 | 7777久久亚洲中文字幕| 精品视频在线免费观看| 国产91久久久久久久免费| 亚洲黄色三级视频| 在线观看免费视频一区| 国产伦一区二区三区免费| 亚洲成人黄色网址| 中文字幕久精品免费视频| 免费a级毛片18以上观看精品| 亚洲午夜电影在线观看高清 | 国产偷伦视频免费观看| 免费看国产曰批40分钟| 亚洲欧美成人综合久久久| 114级毛片免费观看| 国产AV无码专区亚洲AV男同| 国产亚洲人成在线播放|