我是一名前端開發人員,我發現自己處於jsp視圖層,並且看到了很多將數據(模型)推入視圖的解決方案。最近我遇到了一個taglib解決方案,它將數據導入jsp,這對我來說似乎更加自然和明智。MVC與Taglibs,意見/選擇?
首先問題
鑑於單頁,並把它看作一個單獨的實體,MVC使得絕對意義,但是單個頁面可能相當複雜,最有可能重用那些對其他使用的組件/服務頁面。因此,控制器也變得相當複雜。
根據我的經驗,頁面也是可變的,因爲客戶喜歡在下一次「重新設計」時轉移功能或將整個站點翻出來。這通常導致一個相當繁瑣的重構項目,字面上每件事都需要重寫。
然後出現一致性問題,在一個頁面上,數據集被放入ModelView中作爲「列表」,在另一個「list」可能要抽象的頁面上,它被放入ModelView中作爲「specificList」。在項目生命週期中保持一致性是一項單調乏味的任務,通常會被避免,但這正是純粹的MVC解決方案所發生的情況。
解決方案?
因此,在我繼承的最近一個項目中,我看到了兩種將數據拉入pageView的解決方案。第一個使用jsp:include來調用一個jsp頁面並且關閉另一個控制器是相當難看的。
第二次我發現相當優雅,他們使用taglib將特定數據集拉入pageView。 Taglib記錄在TLD內部,使用起來很愉快。突然之間,我可以在多個頁面上重複使用數據,而不會弄亂控制器。
因此,在這個項目中,我不得不實施「重新設計」,所有拉動解決方案的數據使我的工作輕鬆了很多,但是在它們所使用的數據注入點(MVC)這是一個痛苦的屁股(我我不是一個Java開發人員)和Java開發人員來幫助解決問題。
另外taglibs在正確編寫時只能寫入一次,而使用數據注入(MVC)可以成爲您經常需要關注的子項(位於jsp的頂部)。
的Taglib例如
比方說,我們用下面的標籤定義/實現services.tld。
- getEmployeeAddress
- 裝getEmployees
<services:getEmployees filter="a">
<!-- loop, get addresses, otherwise if empty list, render nothing -->
</services:getEmployees>
這讓我(的frontender)到幾乎任何頁面顯示僱員和他們的地址,騰出更重要的任務一個Java開發。該服務可以從pageView控制器單獨測試,pageView控制器變得複雜得多(比如說只處理身份驗證和網站範圍的功能),生活(至少對我來說)似乎更有趣。
我的問題
多部分實際上是:
1)是我的推理廢話,如果是這樣,爲什麼,從什麼角度? = P
2.)有更好的選擇嗎? (我也用瓷磚爲例)。
3.)您是否正在使用上面提到的taglib解決方案,您的經驗如何?
4.)從java開發者的角度來看,以上taglib解決方案的成本/效益/風險是什麼?我知道爲什麼MVC對於Java開發者來說很簡單,但以我的經驗(沙發)來說,它只是把困難轉移到了jsp層,就像我有時需要爲每個頁面學習一個單獨的API ......哦,作爲一名前端開發人員,我確實承認,使用Ajax進行數據抽取對我來說更加自然,而且所有這些都令人不寒而慄,在頁面加載時所有數據都是我的區域中的反模式...
哦,隨時全力以赴在業務邏輯所屬= P – BGerrissen 2011-02-04 14:18:52