Hi,

I've just finished building  a prototype using Struts and talking to EJB
session beans at the back end and can give you a brief sum up of my own
practical experiences 
without answering you point for point :
The chief adavantages are :
simplified  error handling (some) / easy internationalisation / automatic
form handling - think of validation and parameter retrieval / ready-made tag
libraries for code-free JSPs / localisation of all action handling

Incidentally some of the disadvantages you list are trivial : almost every
servlet based framework I've worked with requires at least one class to be
programmed per action.
A Struts tip : think in terms of Actions not pages;   so actions can be
reused by many pages
And.. Data entry validation can be  toggled per JSP (per form actually; you
simply don't implement the validate method if you don't want it!)

Disadvantages are :
- only for JSP / servlets
- a relatively steep learning curve (but thereafter vastly improved
productivity)
- you're bound to the Struts tag libs if you use them (which you should). If
you ditch Struts you can start layouting again -:)
-  (your point )internationalization is limited to static strings


Cheers
Anthony


PS  
I only subscribed to this newsgroup today and the messages are all streaming
into my mailbox.  I's there a !@#$%%%$#@  newsgroup where on can anser this
sort of thing using a normal newsgroup reader?



> -----Original Message-----
> From: David Bueche [SMTP:[EMAIL PROTECTED]]
> Sent: Wednesday, October 31, 2001 2:23 PM
> To:   [EMAIL PROTECTED]
> Subject:      Feedback on Struts Pros and Cons
> 
> All,
> 
> I work with a company that is new to Java and we are evaluating tools for
> a standard J2EE architecture.  One of the Model 2 approaches we are
> looking at is Struts.
> 
> After spending some time evaluating Struts, I have assembled the attached
> list of pros and cons, but would like to get some impartial third party
> feedback.  If anyone sees anything I missed, I would appreciate your
> insights.
> 
> Thanks!
> 
> -David
> 
> ------------------------------
> 
> Struts Advantages:
> 
> 1. Provides a controller ActionServlet that dispatches requests to the
> appropriate business actions (Action subclasses) provided by the
> application developer.  All dispatching is defined in an XML file
> (struts-config.xml).
> 
> 2. Supports internationalization of messages and prompts.
> 
> 3. Provides message collections that can be easily displayed in a
> subsequent JSP/Servlet.
> 
> 4. Allows the input (data entry) JSP/Servlet to be specified for each
> Action subclass, so control can be returned to that JSP/Servlet in the
> case of an error.
> 
> 5. Provides custom tags to delegate many of the JSPs' HTML commands and
> Servlets' "println" statements to tag libraries.
> 
> 6. Automates population of the JSP domain object (ActionForm subclass)
> with input data.
> 
> 7. Allows data entry validation (ActionForm subclass) and business logic
> (Action subclass) to be decoupled from the presentation JSPs/Servlets.
> 
> 8. Data validation can be turned on or off in web.xml.
> 
> 
> Struts Disadvantages:
> 
> 1. Instead of direct dispatching by controller Servlet(s), dispatching is
> defined in an XML file, adding a layer of indirection overhead to the
> architecture.
> 
> 2. Requires behavior typically factored for commonality in controller
> Servlet methods to be duplicated in every Action subclass (some common
> behavior could possibly be delegated to additional classes or components
> and accessed by each Action subclass).
> 
> 3. Struts internationalization is limited to static strings and does not
> include internationalization of data returned by a business component.
> 
> 4. Struts internationalization requires an ApplicationResources.properties
> file, which conflicts with the current Enterprise Java Application
> Standard of definely properties directly in the web.xml file.
> 
> 5. Presentation of message collections is predefined in tag libraries
> (although these could be modified for more specialized presentation).
> 
> 6. Requires understanding of custom tags and tag libraries, as well as
> their deployment.  While this may not be a problem for more advanced
> developers, this will add another layer of complexity for less experienced
> development and support teams and requiring more intensive EAS
> involvement.
> 
> 7. Delegating much of the presentation layer to custom tags can make the
> final HTML/presentation less clear than HTML placed directly in the
> JSPs/Servlets.
> 
> 8. Data entry validation is toggled on/off on a global basis only (not on
> a per JSP/Servlet basis).
> 
> 9. Requires recompilation and redeployment when data entry validation or
> business component invocation changes.   This is unnecessary if data entry
> validation and business component invocation is performed in a JSP.
> 
> 10. Requires at least one additional class per deployed page: an Action
> subclass to invoke the corresponding business component or model behavior
> and forward control to the subsequent JSP/Servlet.  Fewer classes are
> required if this behavior is performed within the controller Servlet.
> 
> 11. Struts applications, with their Action and ActionForm subclasses and
> the struts-config.xml file, add additional development and deployment
> complexity that may be too difficult for less experienced developers to
> grasp. 
> 
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to