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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    需要什么樣的mvc

      在基于B/S的應用程序開發(fā)中,從基本的技術分工上來說就是兩大塊,一是軟件顯示界面,另一個是程序邏輯。在N年前的腳本語言時代,無論是asp、php還是jsp,我們基本是都是把這兩者柔和在一起的。盡管我們想方設法做好很多函數(shù)或者包含文件來努力達到軟件的復用,但仍然無法滿足多變的用戶需求,這主要是因為以前的純腳本編碼方式無法很好支持及應用面向?qū)ο?OO)領域中的強大功能。

      在常見的B/S軟件項目中,界面的設計包括html界面、Wap界面及其它由文本字符協(xié)議為基本表示的界面等。以我們接觸最多的html頁面為例子,在做這些界面的時候往往需要美工先使用photoshop或fireworks等圖形界面設計工具進行全局設計,然后再使用進行Dreamweaver等html頁面制作工具進行加工制作。而強大的程序邏輯及后臺處理都是由服務器端程序完成,這些程序具有較高的穩(wěn)定性,其開發(fā)工具如JBuilder、Eclipse等對View層的界面無法很好的支持(當然那些用記事本寫界面的應用除外),這就使得很多MVC框架的設計都無法兩全齊美。

      隨著Struts等MVC框架的陸續(xù)出現(xiàn)及應用,我們的視圖層變得越來越簡單。然而,仍然不時需要在頁面中插入Java代碼,比如另人討厭的@<import>。這些MVC框架大多提供了一系列的自定義標簽,當自定義標簽越來越復雜的時候,對于程序員簡單的同時,卻把咱們的美工及頁面制作人員給嚇壞了。


    頁面及程序如何分離

      EasyJWeb作為一個快速Java Web MVC框架,其設計目標不盡是要簡化軟件開發(fā)人員的代碼書寫工作,更是要能方便界面設計人員的工作。EasyJWeb通過基于模板的方式,建立在強大而簡單的模板引擎Velocity基礎上,并對Velocity作了一定的擴充。

      Velocity是一個基于java的模板引擎(template engine),它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。作為一個比較完善的模板引擎,Velocity的功能是比較強大的,但強大的同時也增加了應用復雜性。

      理論上你可以在EasyjWeb模板使用所有Velocity的腳本及功能,但我們不推薦你在界面模板中使用過多過復雜的腳本表達方式,在萬不得已的情況下,不要在界面模板中加入任何復雜的邏輯,更不要在界面模板中加入變量聲明、邏輯運算符等等。

      在EasyJWeb中,我們提供了四條基本的模板腳本語句,基本上就能滿足所有應用模板的要求。這四條模板語句很簡單,可以直接由界面設計人員來添加。在當前很多EasyJWeb的應用實踐中,我們看到,所有界面模板中歸納起來只有下面五種簡單模板腳本語句即可實現(xiàn):
      1、$!obj  直接返回對象結果。  
      2、#if($!obj) #else #end 判斷語句
      3、#foreach( $info in $list) $info.someList #end  循環(huán)讀取集合list中的對象,并作相應的處理。
      4、#macro(macroName)#end 腳本函數(shù)(宏)調(diào)用,不推薦在界面模板中大量使用。
      5、包含文件#inclue("模板文件名")或#parse("模板文件名")

      關于EasyJWeb及Velocity腳本的更多內(nèi)容,請看:EasyJWeb-Velocity腳本簡明教程 http://www.easyjf.com/easyjweb/EasyJWeb-Velocity.htm

      EasyJWeb另外提供了很多工具類,通過這些工具類可以大大簡化模板的書寫。比如CommUtil中的toRowChildList,TagUtil中的options等。
      通過使用Velocity模板腳本,可以使得視圖中除了與數(shù)據(jù)顯示有關的內(nèi)容以外,不再有其它任何與特定語言相關的標記或符號。由于Velocity模板對界面不具備任何破壞性,因此就算添加了一系列的模板標記后,美工及頁面制作人員不用作任何額外的特殊處理,就能看到純天然的界面視圖。另外還能通過半小時就能學會了解Velocity腳本的用法,根據(jù)客戶的審美觀、習慣乃至心情靈活的更改系統(tǒng)界面。

    方便他人即是方便自己

      EasyJWeb之所以提倡頁面模板及程序分離,一個重要原因就是解放程序員。給他人方便就等于給自己方便,EasyJWeb中包含了這樣的生活哲學。因此,作為程序員,接觸一段時間EasyJWeb后,你會發(fā)現(xiàn)除了讓視圖界面的人員方便的以外,EasyJWeb最主要關照的還是咱們這些審美觀經(jīng)常被批評,最討厭那些亂七八糟的html代碼,css樣式以及患有圖片恐懼癥的程序員。因此,EasyJWeb讓程序員非常輕松與視圖層的內(nèi)容打交道。比如要把一個對象發(fā)送給視圖層,只需要在Action中使用form.addResult(“name”,obj)即可,要把一個對象分成各屬性發(fā)送給視圖層,可以直接使用form.addPo(obj)方法即可;要從視圖層表單中讀取數(shù)據(jù)到對象中,只需要form.toPo(obj)即可;EasyJWeb為了處理了數(shù)據(jù)轉(zhuǎn)換、驗證、數(shù)據(jù)保護等諸多細節(jié)。

    posted on 2007-08-21 09:27 簡易java框架 閱讀(969) 評論(2)  編輯  收藏

    FeedBack:
    # re: 讓代碼與視圖模板的分離  2007-08-21 13:33 編程、設計是職業(yè)更是愛好
    實際上,還可以做的更好。對于UI/HTML設計人員來說,最友好的就是code里沒有令人生厭的自定義tag,的確,現(xiàn)在的MVC在濫用tag,完全把server數(shù)據(jù)和console顯示混在一起,表面上自己方便了,實際上在給別人制造麻煩。我不喜歡struts, 尤其是其中的tag,并不是杜絕所有tag,而是有一兩個夠用的即可,比如i18n & templage inlcude。
    此外,作為框架,必需有能夠方便UI/HTML進行設計、編碼的機制,不要試圖讓這些人員去裝任何運行環(huán)境,對他們來說,Editplus就應足矣了。
    如果有興趣我們可以深度討論。  回復  更多評論
      
    # re: 讓代碼與視圖模板的分離  2007-08-23 14:23 beans
    使用模板機制確實是我的最愛,這是我們項目中不選擇JSF的原因。  回復  更多評論
      

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲fuli在线观看| 亚洲日本VA午夜在线影院| 色老头综合免费视频| 在线免费观看国产视频| 亚洲AV第一成肉网| 又粗又硬免费毛片| 成人免费观看男女羞羞视频| 亚洲免费视频一区二区三区| 一级毛片成人免费看a| 国产L精品国产亚洲区久久| 在线观看免费视频一区| 精品久久香蕉国产线看观看亚洲| 成全高清在线观看免费| 亚洲精品成人av在线| 18观看免费永久视频| 亚洲中文字幕一区精品自拍| 日韩免费视频播播| 亚洲五月午夜免费在线视频| 亚洲国产成人久久精品影视| 中文字幕亚洲免费无线观看日本| 亚洲欧洲综合在线| 日本免费一区二区三区最新| 国产V片在线播放免费无码| 亚洲精品午夜无码电影网| 最近最新高清免费中文字幕 | 久久久亚洲AV波多野结衣| 69天堂人成无码麻豆免费视频| 亚洲天然素人无码专区| 亚洲Av无码乱码在线观看性色| CAOPORN国产精品免费视频| 亚洲欧洲精品久久| 日韩中文无码有码免费视频| 免费无码黄网站在线看| 亚洲av专区无码观看精品天堂| 国产美女无遮挡免费网站| 在线毛片片免费观看| 亚洲综合一区无码精品| 亚洲人精品午夜射精日韩| 永久免费毛片在线播放| 一个人看的免费观看日本视频www| 亚洲精品美女久久久久9999|