2010-04-15 99 views
6

哪一個最好,換句話說,最簡單的方法是使用?條紋或JSF。JSF vs Stripes,哪個最好?

儘管我沒有在憤怒中使用過這兩種方法,但我需要衡量什麼是最好的選擇,以便開始新項目和轉換現有的Struts項目。

我擔心JSF不會像我想要的那樣很好地渲染,但其他的經驗是什麼? 似乎條紋是非常直截了當的,我會在這個假設是正確的嗎?

回答

14

哪一個最好,換句話說,最容易使用?條紋或JSF。

哪一個是最好的?那麼Stripes和JSF是不同的。前者是一個基於動作的框架(就像Struts),而後者是基於組件的(比如Wicket)。因此,答案將取決於您基於行動的流程與基於組件的層級的經驗和知識,並且都有其優點和缺點。哪個最簡單?條紋,毫無疑問。

我喜歡條紋什麼:

  • 它的簡單和容易的,即它具有較低的學習曲線。
  • 我喜歡它的約定而不是配置方法。
  • 它輕巧。
  • 它有很好的文檔記錄(因爲它的簡單性,你不需要大量的文檔)。
  • 它有一個小的,但是被動社區(你會在mailing lists上得到答案)。

如果兩者對你都是新的,我會去Stripes。如果你想學習一個基於組件的框架,我認爲從Wicket開始比較容易(也參見Gavin King在How to start learning Java EE 6中所說的內容)。

+2

+1我非常同意所有這些觀點(尤其是文檔 - 我對他們的表現感到驚訝,許多開源工具的文檔留下了許多不足之處,條紋食譜非常棒!) (我的條紋社區的經驗雖然不太快,但!) – 2010-04-15 16:45:27

+0

@James好點,速度的感知是某種主觀的,我已經更新了我的答案。 – 2010-04-15 16:55:26

+3

條紋只是岩石!這是最優雅的MVC框架,不需要複雜的XML配置。它沒有陡峭的學習曲線,提供搜索引擎友好鏈接,閃電般快速! – Kdeveloper 2010-04-17 10:55:07

1

jsf遠遠多用了,所以如果有什麼奇怪的事情發生,你應該有更好的支持。這是我使用它的充分理由。

+4

不同意 - 更多「怪異」的東西發生在JSF中,因爲它太複雜了。這是我*不*使用它的足夠理由。 – Nate 2010-04-15 15:05:44

+0

不正確。 JSF受到很多問題的困擾,這些問題並沒有從這種「更好的支持」中解決。 – foxdonut 2010-05-21 16:08:24

1

我會使用JSF。它用得更廣泛,而且對於基於JSF的應用程序來說,iceFaces是一個非常方便的軟件包。

+0

爲什麼要投票?謹慎解釋嗎? – CoolBeans 2010-05-22 04:02:24

0

Seam是用於開發JSF應用程序的不錯的應用程序堆棧,不確定關於Stipes。

  • 轉換
  • 尼斯的Ajax支持
  • 豐富的組件
  • 批註過的XML配置的

一個我不喜歡的事情JSF是HIGHT學習曲線,特別是如果你是JSF的新來者。

+4

帶有facelets的JSF 2比JSF 1好得多,更好。 – 2010-04-15 17:05:35

2

最好的網絡框架?像往常一樣,這個問題導致了一個「取決於」的答案。

另一個問題:「什麼是最容易使用的框架」。更容易回答,即條紋。 JSF有一個臭名昭着的陡峭的學習曲線。另一方面條紋很容易設置並且易於學習。

Stripes框架就像Struts,但只有更好。對於example,它使用註釋而不是XML配置文件。就像Struts框架一樣,它是一個基於動作的框架,只是更加優雅。這意味着它嚴格遵循HTTP事件處理的無狀態性質。如果您希望在生成頁面的過程中獲得高性能和最大的靈活性,這很好。

像JSF這樣的框架不是基於動作的框架,而是基於組件的框架。這意味着它會在HTTP和您的應用程序之間移動一層抽象。該層使得可以像編寫Swing應用程序一樣編寫JSF應用程序。因此,JSF基本上處理組件模型和無狀態HTTP生命週期之間的範例失配。然而,這個抽象層會花費一些性能;它也會使你對生成的HTML的控制程度稍微降低。

0

像Struts這樣的條紋對於你的應用程序並沒有太大作用。除了一些基本的路由和填充表單和執行動作外,它基本上什麼都不做。上次我檢查大多數(全部)條紋標籤基本上是相同的html標籤fascades,很少或沒有額外的。這就是說JSF的確給予了更多的支持,但是如果你想要一個真正的技術,而不是在2000年陷入困境 - 考慮GWT。

1

JSF是Java EE 6+的一部分。這意味着它將在很長時間內可用並保持,這對我們很重要。

也可能出現不同的實現,它允許您爲給定的目的選擇最好的實現。

3

JSF沒有良好的新聞和惡劣的聲譽是不合理的證明(太陽微系統公司錯過了一次機會)。但是,自從問到這個問題以來,很多變了 - 新的JSF 2.0版本發佈了。

那麼JSF 1.X出了什麼問題,與Stripes,Spring MVC或Wicket,Play,Click等相比,是什麼讓它變得如此可笑呢?

  1. 只有POST請求得到了支持,這引起性能問題(GET請求,可以有效地緩存),很難實現可收藏的URL和更
  2. JSF 1.X是基於JSP頁面,這些都沒有被適用來處理更復雜的JSF頁面生命週期
  3. 創建組件很困難,也很麻煩。導航規則
  4. 定義是遠離靈活,非常詳細
  5. 強制性XML配置
  6. 沒有乾淨的資源管理方法

的好處是,所有這些缺點都是由新的JSF版本解決。

  1. GET和POST請求同樣得到很好的支持。
  2. 配置可以在註釋的幫助下完成(我們可以在更好的解決方案中堅持使用XML),簡化導航規則定義,甚至可以使用約定而不是配置方法。
  3. 組件創建非常簡單。
  4. 有一些新的和非常有用的組件範圍:查看範圍和Flash範圍(類似於Ruby on Rails中已知的範圍),使用戶能夠輕鬆處理更復雜的流程。
  5. 有標準的資源管理方法和更好的錯誤處理設施
  6. 我們可以定義項目階段在各種環境下更容易操作的項目(測試,生產等)
  7. 基於XHTML的Facelets代替JSP好得多視圖定義替代方案
  8. 內置AJAX請求支持
  9. JSF是Java EE標準的一部分,這意味着如果無聊開發人員決定轉向下一個更加流行的框架,它們不會在一夜之間消失。

最後,巨大的JSF 2.X優勢:設計良好,外觀美觀且性能良好,隨時可用的組件(RichFaces,PrimeFaces,ICEFaces)。這些庫提供了數百個通常用於WWW頁面組件的可用組件,而無需編寫單行JavaScript或CSS。這是巨大的生產力提升。

儘管沒有構建組件模型(使用更多的內存,更多的網絡帶寬),與Stripes等基於動作的框架相比,JSF可能會遇到性能問題。

但是對於不必非常高效的應用程序,JSF 2.0是一個非常好的理性選擇。學習曲線不再那麼陡峭,再加上重複使用現有組件的能力使其真正具有吸引力。從這個角度來看,Stripes並不是那麼有吸引力。

因此,例如,對於由2000名員工使用的Intranet企業應用程序,JSF 2.0將是不錯的選擇。

+0

感謝Piotr,因爲提出這個問題,我已經轉移了工作並瞭解了JSF 1.2應用程序的深度。出於您陳述的原因,JSF 2.0在名片上。 – enkor 2012-05-15 15:37:52