2009-08-14 110 views
5

我最近添加了Struts 1.3到Tomcat的應用程序。這裏是我的觀察,Struts的好處是什麼

  1. MVC。 Servlet/JSP對我來說很好,JSP是視圖,servlet是控制器。由於我們的映射是非常靜態的,我沒有看到從XML文件獲取映射的好處。
  2. Action Form。我可以看到行動形式的一些好處,但不是很大。
  3. 標籤。我已經使用JSTL,並沒有看到使用Struts標籤的優勢。

所以我在考慮刪除Struts。任何人都可以想到我可能錯過的其他好處?

+2

刪除它。 Struts是遺留的。除非嚴格限制,否則沒有人應該選擇Struts來實現新的實現。 – SteveD 2009-08-14 07:11:39

+0

+1完全同意stevendick – 2009-08-14 07:46:11

+0

感謝您的回覆。我已經決定刪除​​它。 – 2009-08-16 00:17:05

回答

11

我個人更喜歡jsp/servlet,但理論上Struts有一些優點。 以下是我所知道的一些優點,您可能已經提到過它們,但是我認爲如果我在這裏列出所有這些優點會更好。

  1. 集中式文件配置。 Struts值/映射以XML或屬性文件表示。這種鬆散的耦合意味着可以在不修改或重新編譯Java代碼的情況下進行許多更改,並且可以通過編輯單個文件進行批量更改。這種方法還可以讓Java和Web開發人員專注於他們的特定任務(實現業務邏輯,向客戶端提供某些值等),而無需瞭解整個系統佈局。

  2. Form Beans。

  3. Bean Tags。 Struts提供了一組定製的JSP標籤,可以讓您輕鬆輸出JavaBeans組件的屬性。

  4. HTML標記。 Struts提供了一組定製JSP標籤來創建與JavaBeans組件相關聯的HTML表單。這個bean/form關聯有兩個有用的目的:

    • 它可以讓你從Java對象獲取初始表單字段值。
    • 它可讓您重新顯示帶有部分或全部先前輸入值的表單。
  5. 表單字段驗證。 Struts有一個健壯的,可擴展的驗證器,可以用來統一驗證你的表單域。此驗證可以在服務器上(使用Java)執行,也可以在服務器和客戶端(使用JavaScript)執行。

  6. 「管道代碼」包含在Struts框架中。 例如,將HTTP請求參數映射到Java對象由Struts處理。你不必這樣做。這使您可以更專注於域問題而不是構建基礎結構。

  7. 好文檔&很多書籍。 如果你不得不離開項目和/或其他人必須維護它,那麼使用一個衆所周知的和有據可查的框架將使這個工作變得更容易。自制的框架無法與此相匹配。

  8. 廣泛的用戶測試。 由於Struts被用於大量的Web應用程序,框架將被比許多單獨編寫的東西更多的眼睛看着。通常,但並非總是如此,這意味着您擁有的任何問題都會首先被其他人看到(並希望得到解決)。

3

龐大的知識庫。 我同意這可能不像以前那樣有效,但Struts已經在多年的許多項目中使用過。從可維護性的角度出發,使用衆所周知的框架可以讓其他人更容易地處理您的應用程序,並且還可以幫助您爲未來構建自己的簡歷。現在大部分開發都是在基於組件的空間(如JSF,wicket,tapestry)或類似軌道的空間(如rails,grails,lift),但struts arcitechture仍在使用且有效。

你沒有說如果你在公司環境中開發或者沒有開發,對於一個個人項目來說,可維護性問題可能不是什麼大問題。

如果決定支柱適合你的好,你也可以看看stripes,一個支柱狀的框架,是基於同樣的概念,但更簡潔,當談到與更合理的默認配置,更少的XML和支持用於註釋。

3

我完全同意你關於Struts的觀點 - 我個人認爲它的時代已經來臨。

因爲表單bean只是添加了樣板代碼來編寫,所以我在Struts v1(我認爲它不是最新版本)中脫離了Struts。

從那時起,我所從事的大多數應用程序都使用Spring作爲依賴注入框架,這使得Spring MVC成爲自然選擇 - 它很簡單,直接且簡單。

1

不僅適用於Struts。但要考慮使用框架的一些要點:

  • 標準化。
  • 爲您最喜愛的IDE提供專用IDE或插件。
  • 便攜性。例如,某人可以開發一個portlet,將現有的struts應用程序集成到門戶服務器中。
  • 國際化。

對我來說最重要的:

  • 你不必擔心在支柱代碼的問題,只是升級。
  • 您可以將您的工作集中在業務邏輯中。
1

Struts是開放Source-- 大型社區---- 提供書籍的數量----- 證實了的框架---- 流行的框架----- 可用自2001-- - + ---- 上述特徵...........

但使用支柱時UR,更好的選擇是struts2的。

1

我認爲你對刪除Struts的感覺是一個合理且可以理解的反應。對於應用程序來說,Struts似乎並沒有太大用處。