思考^新知^傳播

          crabhn's blog

           

          [導入]sitemesh-頁面IOC容器(頁面設計層面的Spring)

          IOC容器大家都經常用了,但是不知道有沒有人注意到在web層我們也可以使用很好的“IOC容器”,就是可愛的sitemesh了,在使用sitemesh之前我們都是直接使用include來包裝頁面,把一個普通的頁面include head.jsp menu.jsp footer.jsp這樣就組裝好了一個頁面,但是這里這三個文件就和所有的這些使用他們的jsp硬編碼放在一起了,這就像我們在系統里面用new來生成一個instance,這樣頁面也一樣造成了很高的耦合度。這樣在頁面級別如果出現需要更改就非常的麻煩了,比如客戶說你這個頁腳我不想要這個,需要另外一個,或者菜單不放在左邊,我要放到右邊去了,這樣你就暈倒了,由于include到處都是,你要一個個找出來修改,也許你會說可以把它們變成空的文件就可以,當然可以,但是這畢竟不是最好的解決方式。

          這時候你就可以看看sitemesh了,他和spring一樣,在配置文件里面配置頁面之間的關系,比如很多的前臺頁面都需要一個頁頭,一個菜單,一個頁腳,那么你就可以作一個頁面的模板,包括這些元素,但是在需要插入的地方作一個插入占位標簽,這樣sitemesh就會把被修飾的頁面的body部分抽取出來無縫地插入到頁面模板里面去。sitemesh理解html,這樣它就可以抽取指定的標簽到模板相應位置,比如title,比如body里面的onload事件還有head里面的javascript代碼。你不用擔心它會插錯位置。

          這樣你就可以獨立的進行頁面的編寫,每個頁面只需要維護它自己的功能,至于它需要和哪些頁面來組合一概不知,這樣就把頁面級別的耦合全部去除,非常符合DRY(Don't Repeat Youself)原則。

          如果sitemesh+web標準的css和無table的方式來設計頁面,就可以完完全全做到頁面的干干凈凈,而且顯示和內容完全分開,對于直接接觸到jsp源碼的程序員是一種享受了:)


          文章來源:http://blog.donews.com/crabhn/archive/2006/03/02/750132.aspx

          posted on 2006-03-03 00:27 crabhn's blog 閱讀(339) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 甘洛县| 乌鲁木齐县| 攀枝花市| 辉南县| 荆门市| 滨海县| 南江县| 巍山| 公主岭市| 射洪县| 福海县| 孟连| 和硕县| 双鸭山市| 卫辉市| 大新县| 丽江市| 德格县| 灵山县| 武汉市| 神木县| 安多县| 兴化市| 江达县| 甘南县| 出国| 营山县| 辽中县| 青铜峡市| 湘潭市| 奎屯市| 宜春市| 柞水县| 盐山县| 铜陵市| 桑植县| 囊谦县| 尚志市| 阳高县| 迁安市| 永春县|