Which is best, or in other words, whish is easiest to use? Stripes or JSF.
Although I haven't used both in anger I need to gauge what is the best option to work with for both starting new projects and converting existing Struts projects.
I have a fear that JSF won't render as nicely as I want but what are others experiences? Seems Stripes is far more straight forward, would I be correct in this assumption?
Which is the best? Well, Stripes and JSF are different. The former is an action-based framework (like Struts) while the later is component-based (like Wicket). So the answer will depend on your experience and knowledge of action-based flow vs component-based hierarchy and both have their strengths and weaknesses. Which is the easiest? Stripes, no doubts about that.
What I love about Stripes:
If both are new to you, I'd go for Stripes. If you want to learn a component-based framework, I think it's easier to start with Wicket (also see what Gavin King says in How to start learning Java EE 6).
JSF is part of Java EE 6+. That means it will be available and maintained for a very long time, which is important to us.
Also different implementations may occur which allows you to choose the best one for a given purpose.
The best web framework? Like often this question results in an “it depends” answer.
The other question: “what the easiest to use framework”. Is easier to answer, that Stripes. JSF has a notorious steep learning curve. Stripes on the other hand is easy to setup and easy to learn.
The Stripes framework is like Struts but only better. For example, it uses annotations instead of XML configuration files. Just like the Struts framework it’s an action based framework, only more elegant. This means it closely follows the stateless nature of the HTTP event processing. This is good if you want high performance and maximum flexibility in how you’re pages are generated.
A framework like JSF is not an action based framework but component based framework. This means it moves a layer of abstraction between HTTP and your application. This layer makes it possible to program JSF applications as if you’re programming a Swing application. Thus JSF basically handles the paradigm mismatch between the components model and the stateless HTTP life cycle. This layer of abstraction however, will cost some performance; also it will give you somewhat lesser degree of control on the generated HTML.
Seam is nice application stack for developing JSF apps, not sure about Stipes.
One thing I don't like about JSF is hight learning curve specially if you are new comer to JSF.
Stripes like Struts does not really do a lot for your app. Besides some elementary routing and populating of forms and executing actions it does basically nothing. Last time i checked most(all) stripes tags are basically fascades for the equivalent html tag with little or no extras. That said JSF does give more but if you want a real technology that is not stuck in the year 2000 - consider GWT.
jsf far more used, so you should have better support if anything weird happens. That is enough reason for me to use it.