2013-04-23 64 views
-2

我有要求將某些駐留Java項目的功能合併到新的應用程序中,並試圖對某些第三方庫作出決定,特別是關於到用戶界面。我會非常感興趣的是,從最近的Java框架趨勢和經驗中獲得一些技術人員對他們意見的反饋。用於新項目的JSF或JSP 2標記文件

傳統項目是一個混合羣,所有基於Web的,大量圍繞具有搜索的CRUDable對象的業務邏輯。一個使用內部框架 - 非常快速,可擴展,但與內部工作相關的缺點 - 新開發人員的學習曲線等。另一個是Tapestry 5應用程序 - 與XFire/CXF非常強大,極好的集成,用於生成Web服務,快速的用戶界面生成,但非Tapestry類型的學習曲線很好。第三,Spring 3應用程序,使用JSP 2.0標記文件進行查看圖層,並將一些JQuery用於演示/ ajax。

我對Spring非常熟悉,並且在低複雜度和高性能方面非常有效地發現了Tiles的UI標籤文件。最近我還包裝了一個使用RichFaces 4的項目,這個項目很成功並準時到達。我喜歡使用RF/IceFaces等免費提供的豐富UI,並且已經注意到JSF的更新版本已經完全停用了JSP。爲了削減成本,使用基於組件的UI庫具有明確定義但不可修改的行爲(如RF/IF)的限制,比適合自己的解決方案更適合新應用,標籤文件/ JQuery的。我對後者更加熟悉,但不想在項目的早期階段採用過時的方法走錯路。我想繼續使用Spring 3控制器來實現RESTful,可加入書籤的應用程序入口點 - 與Spring進行IF/RF混合還是JSF方法完全從Spring中刪除MVC義務?

如果MVC義務從春刪除:

  • 如何將JSF生命週期與Spring集成 - 這將是自包含的,只是使用IOC接線Spring服務?

  • 與IF/RF方法是否有良好的整合,用於生成Web服務等?

  • IF/RF對平板電腦/手機有什麼樣的支持?

  • 是否需要Spring - 管理的bean是否有用?

+0

我試着回答關於JSF和Spring問題的核心問題,但是您的問題過於寬泛,所以我覺得我需要刪除問題的某些部分才能使其可以回答。我建議發佈單獨的問題,而不是將所有想法都放在一個地方。你會得到更好的答案,他們更有可能幫助未來的遊客。請閱讀[FAQ](http:// stackoverflow/faq)瞭解更多信息。 – 2013-04-23 12:06:11

+0

@maple_shaft感謝您提供的有用信息,以及有關用於移動應用的Primefaces組件的指示器 - 非常令人印象深刻,並且通常性能PF看起來與RF/IF的疊加非常好。我處於Spring的一個舒適區域,但是您已經幫助澄清了JSF完全能夠在沒有Spring的情況下管理MVC應用程序的事實。 – jc1001 2013-04-23 12:49:29

+0

@maple_shaft拋開AJAX,你是否發現在採用JSF方面的生產力優勢?我自己的經驗是,JSP 2標記文件易於使用,並且不會過於冗長。我發現JSF的渲染生命週期可能會導致開發人員混淆,並且在頁面渲染期間多次調用某些初始化邏輯或其他冗長的進程並不罕見。另外,xhtml文件可能會變得非常冗長。你有沒有什麼令人信服的理由可以想到移交給JSF(除了Oracle的建議)? – jc1001 2013-04-23 12:56:06

回答

3

要切入正題,是使用有明確定義,但不可修改的行爲,如RF/IF更適合新的應用程序比滾你自己的解決方案基於組件UI庫的限制,帶有標籤文件/ JQuery。

它不是一個或另一個。 Java Server Faces是一個基於組件的Web框架,它允許在請求和響應上同步服務器和客戶端狀態,以允許應用程序中的階段和事件模型等事情。許多JSF組件固有地利用jQuery,並通過將它們包裝在服務器端行爲中來擴展富客戶端控件。這不是不可修改的行爲,只是有一點學習曲線可以用一種非常特定的方式來定製事物。

JSF是Oracle推薦的Java EE web開發方法。

IF/RF與Spring混合還是JSF方法從Spring徹底刪除了MVC的義務?

JSF生命週期將如何與Spring集成 - 它是獨立的,只需使用IOC來連接Spring服務?

JSF本質上是它自己的MVC框架,並且託管屬性已經在依賴注入中擁有自己的烘焙。核心Spring主要是傾向性注入,所以人們會認爲他們有矛盾,但令人驚訝的是他們很好地合作。

Spring的最新版本爲JSF提供了自己的EL Resolver實現,它允許將JSF Managed Beans作爲Spring bean進行處理。這個類甚至可以裝入Spring的舊版本,我已經完成並注意到沒有問題。 Spring Spring MVC主要建立在JSP技術的基礎上,但它不是Spring的核心組成部分。如果您不想提供JSP頁面,則無需將其包含在JSF Web應用程序中。

是否有良好的融合IF/RF方法來生成Web服務等?

當涉及到JSF應用程序中的Web服務時,最好記住JSF不必定義Web應用程序的限制,也不必定義它的全部內容。 JSF僅僅是JSF頁面請求的前端。瞭解這個同樣的Web應用程序也可以爲他們自己的基於SOAP或REST的Web服務提供服務,或者只需在業務邏輯中的服務器端的數據源處理這些Web服務。另一種方法仍然是從頁面上的Javascript調用外部Web服務。 JSF中沒有任何內容不包含任何HTML,Javascript或更新的HTML5技術元素。

IF/RF對平板電腦/手機有什麼樣的支持?

不知道什麼IF和RF有,但我知道,Primefaces對移動應用令人印象深刻的控制集是值得一試。

是需要Spring的 - 將被管理的bean做詭計嗎?

絕對沒有必要。我碰巧喜歡春天,所以我使用它。