July 21, 2005

JSF v. Struts

There's been a "what advantages does JSF have over Struts" thread on the MyFaces list in the last couple of days so I thought I'd put together a summary.

  • Fewer and less verbose config files
  • Automatic type conversion of bean elements (not forced to use String)
  • Bi-directional conversion between browser info and bean info, not just decoding
  • Validation and conversion are more robust, re-usable and extensible
  • Large and rapidly growing set of UI components – richer and more reliable UI
  • UI components are more reusable
  • Using standard (JEE) components maximises ability to hire developers who will understand them and is thus a safer choice (in the long run, presumably)
  • Better tools are available
  • Allows RAD (by building view first)
  • Lifecycle events are standardised and extensible
  • Eliminates all logic in JSPs
  • Dependency injection is considered best practice these days
  • JSF's bean injection virtually eliminates the need to directly access the Session and Request objects, reducing coupling and increasing reliability
  • Rendering is decoupled from the view, so can use JSF for rendering to mobile devices
  • Cleaner MVC model – is an ActionForm part of the controller (action) or view (form)?
  • More flexible navigation because navigation rules are decoupled from actions
  • Less coupling to the framework in general

The last point was only touched on briefly somewhere, but for me it's one of the key points. My view (since JSF 1.0 came out) is that the JSF framework is cleaner and does more of the dirty work for you, but the lack of coupling means more of your application to be written as POJOs – the same advantage as technologies like JDO and Spring.


- One comment Not publicly viewable

  1. Chris May

    One that's only touched on in that list is JSF's finer level of 'granularity' of the lifecycle methods. Because (in Struts) Action.execute() has such a broad scope, it's far too easy to lump binding, validation, business logic, controller logic, view preparation and view selection all into one hideous blob of interdependent code.

    Pretty much all the post-struts frameworks implement a stricter lifecycle, so it's clear that your validation can't interfere with your view preparation, and so on. JSF's version is particularly clear. I think Spring webflow has the nicest implementation of this so far, though I'm watching Shale with interest.

    21 Jul 2005, 15:40


Add a comment

You are not allowed to comment on this entry as it has restricted commenting permissions.

July 2005

Mo Tu We Th Fr Sa Su
Jun |  Today  | Aug
            1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Search this blog

Tags

Galleries

Most recent comments

  • Good luck, Jon. Thanks for your helps in the past 3 years. by Hongfeng Sun on this entry
  • Good luck in the future by Mathew Mannion on this entry
  • It is indeed. And when I look out of the nearest window at work, I see Charter Avenue, where parking… by on this entry
  • There's very little free parking on the rest of campus, so why should westwood be treated favourably… by on this entry
  • I live in Earlsdon. I can drive, but haven't since I came to University here in 1990 (I never left –… by on this entry

Blog archive

Loading…
Not signed in
Sign in

Powered by BlogBuilder
© MMXIV