簡體   English   中英

Struts的好處是什么?

[英]What Are the Benefits of Struts

我最近在我的Tomcat應用程序中添加了Struts 1.3。 以下是我的觀察,

  1. MVC。 Servlet / JSP對我來說很好,其中JSP是視圖,servlet是控制器。 我認為從XML文件獲取映射沒有任何好處,因為我們的映射是非常靜態的。
  2. 行動表格。 我可以看到行動形式的一些好處,但不是很大。
  3. 標簽。 我已經使用了JSTL,並且看不到使用Struts標記的任何優勢。

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

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

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

  2. 形式豆。

  3. 豆標簽。 Struts提供了一組自定義JSP標記,使您可以輕松輸出JavaBeans組件的屬性。

  4. HTML標簽。 Struts提供了一組自定義JSP標記來創建與JavaBeans組件關聯的HTML表單。 此bean / form關聯有兩個有用的用途:

    • 它允許您從Java對象獲取初始表單字段值。
    • 它允許您重新顯示表格,其中部分或全部先前輸入的值保持不變。
  5. 表格字段驗證。 Struts有一個健壯的,可擴展的驗證器,可用於統一驗證表單字段。 此驗證可以在服務器上(在Java中)執行,也可以在服務器上和客戶端上執行(在JavaScript中)。

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

  7. 良好的文檔和大量的書籍。 如果你不得不離開項目和/或其他人必須維護它,那么使用一個眾所周知且文檔齊全的框架將使這項工作變得更加容易。 自制框架無法與之匹敵。

  8. 廣泛的用戶測試。 由於Struts在很多網絡應用程序中使用,因此框架將被更多的眼睛所看到,而不是單獨編寫的任何東西。 通常,但並非總是如此,這意味着您所遇到的任何問題都會被其他人(並希望已經解決)首先看到。

知識庫量大。 我同意這可能不像過去那樣有效,但多年來Struts已被用於許多項目中。 從可維護性的角度來看,使用一個眾所周知的框架可以讓其他人更輕松地處理您的應用程序,並幫助您構建自己的未來簡歷。 現在大多數發展無論是在基於組件的空間(如JSF檢票掛毯 ),或在軌道狀空間(如導軌Grails的電梯 ),但支柱arcitechture仍然在使用和有效的。

你沒有說你是否在公司環境中發展,對於個人項目而言,可維護性問題可能不是一個問題。

如果你認為struts很適合你,你也可以看看條紋 ,類似struts的框架基於相同的概念,但在配置時更簡潔,更簡單的默認值,更少的xml和對注釋的支持。

我完全贊同你關於Struts的觀點 - 我個人認為它的時間已經過去了。

我在v1中關閉了Struts(我認為它不像最新版本),因為表單bean只是添加了樣板代碼來編寫。

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

不只是Struts。 但是使用框架需要考慮一些要點:

  • 標准化。
  • 您喜愛的IDE的專用IDE或插件。
  • 可移植性。 例如,有人可以開發一個portlet,用於將現有的struts應用程序集成到門戶服務器中。
  • 國際化。

對我來說最重要的是:

  • 您不必擔心struts代碼上的問題,只需升級即可。
  • 您可以將工作重點放在業務邏輯上。

Struts是開源的 - 大型社區----可用書籍數量-----經過驗證的FrameWork ----流行框架-----自2001年起可用---- + ----上述功能...........

但是當你使用struts時,更好的選擇是struts2。

我認為你對刪除Struts的感覺是一種合理且可理解的反應。 Struts似乎對應用程序沒有太大幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM