-
Differences between Struts and JSF? (82 messages)
- Posted by: Joseph Ottinger
- Posted on: October 25 2007 11:00 EDT
A reader sent in a question: "What's the difference between Struts and JSF? Which one is better?" That's a ... question. What do TSS readers say? What about other frameworks? How would you sum up the primary strengths and weaknesses in a comparison? (As food for thought, consider Fred Daoud's web frameworks conference, in the same vein as David Rupp's "conference" for languages...)Threaded Messages (82)
- Holy War begins in... by Cary Clark on October 25 2007 11:41 EDT
- Re: Holy War begins in... by Bruno Borges on October 25 2007 11:51 EDT
- I vote for GWT by Mark Davis on October 25 2007 12:57 EDT
-
Re: I vote for GWT by jelmer kuperus on October 25 2007 02:05 EDT
-
Re: I vote for GWT by ss ss on October 26 2007 10:46 EDT
- Re: I vote for GWT by Adam John on October 26 2007 11:13 EDT
-
Re: I vote for GWT by ss ss on October 26 2007 10:46 EDT
- Re: I vote for GWT by Sergey Smirnov on October 25 2007 02:18 EDT
- I Vote for Thinwire by Pether Sorling on October 25 2007 03:04 EDT
- Re: I vote for GWT by David McCoy on October 25 2007 04:17 EDT
-
Re: I vote for GWT by Thai Dang Vu on October 25 2007 05:25 EDT
-
Re: I vote for GWT by Mark Davis on October 26 2007 12:27 EDT
- Re: I vote for GWT by Adrian Marti on October 26 2007 01:21 EDT
-
Re: I vote for GWT by Thai Dang Vu on October 26 2007 07:19 EDT
- Re: I vote for GWT by Mark Davis on October 27 2007 04:22 EDT
-
Re: I vote for GWT by Mark Davis on October 26 2007 12:27 EDT
- not the only drawbacks by Marie Antoinette on October 25 2007 07:58 EDT
- Re: I vote for GWT by Eirik Rosvold Larsen on October 26 2007 03:17 EDT
-
I vote for Server-Centric architecture by Samia Fn on October 28 2007 10:55 EDT
-
Re: I vote for Server-Centric architecture by Mark Davis on October 28 2007 12:55 EDT
-
Re: I vote for Server-Centric architecture by Jacob Hookom on October 29 2007 12:00 EDT
-
Re: I vote for Server-Centric architecture by Mark Davis on October 29 2007 02:32 EDT
- Re: I vote for Server-Centric architecture by Jacob Hookom on October 29 2007 02:55 EDT
- Re: I vote for Server-Centric architecture by Eelco Hillenius on October 31 2007 02:12 EDT
-
Re: I vote for Server-Centric architecture by Mark Davis on October 29 2007 02:32 EDT
- Client must not be bogged down with Javascript! by Inf ernoz on November 01 2007 06:47 EDT
-
Re: I vote for Server-Centric architecture by Jacob Hookom on October 29 2007 12:00 EDT
-
Re: I vote for Server-Centric architecture by Mark Davis on October 28 2007 12:55 EDT
-
Re: I vote for GWT by jelmer kuperus on October 25 2007 02:05 EDT
- JSF, Struts, blech by Derek Ward on October 25 2007 15:10 EDT
- Re: JSF, Struts, blech by Jin Chun on October 25 2007 05:12 EDT
- At the risk of sounding too harsh... by Marc Stock on October 25 2007 11:49 EDT
- Re: At the risk of sounding too harsh... by Rene Davila on October 25 2007 12:24 EDT
- They both suck by greg matthews on October 25 2007 07:57 EDT
- Re: At the risk of sounding too harsh... by Gofhaone Taunyane on October 26 2007 09:14 EDT
- Re: At the risk of sounding too harsh... by ss ss on October 26 2007 10:25 EDT
- Well, if it weren't for bad programmers. . . by JIM BEDENBAUGH on October 29 2007 16:52 EDT
- Re: At the risk of sounding too harsh... by Rene Davila on October 25 2007 12:24 EDT
- Re: Differences between Struts and JSF? by Sergey Smirnov on October 25 2007 12:29 EDT
- Re: Differences between Struts and JSF? by Mark N on October 25 2007 13:23 EDT
-
Re: Differences between Struts and JSF? by Sergey Smirnov on October 25 2007 02:13 EDT
- Re: Differences between Struts and JSF? by Mark N on October 25 2007 02:59 EDT
-
Re: Differences between Struts and JSF? by Sergey Smirnov on October 25 2007 02:13 EDT
- Re: Differences between Struts and JSF? by Mark N on October 25 2007 13:23 EDT
- I'd go JSF/Seam by Steven Boscarine on October 25 2007 12:53 EDT
- webwork user here by Frans Thamura on October 25 2007 13:03 EDT
- Re: I'd go JSF/Seam by Marc Stock on October 25 2007 13:35 EDT
- Re: Wicket online doc by Kent Tong on October 25 2007 10:19 EDT
- Re: Differences between Struts and JSF? by Will Hartung on October 25 2007 13:20 EDT
- Re: Differences between Struts and JSF? by Andrew Clifford on October 25 2007 22:19 EDT
- Re: Differences between Struts and JSF? by Will Hartung on October 26 2007 01:03 EDT
-
What about JSF 2.0? by Ryan de Laplante on October 28 2007 12:55 EDT
-
Re: What about JSF 2.0? by Ric Wang on October 29 2007 11:11 EDT
-
Re: What about JSF 2.0? by Ryan de Laplante on October 31 2007 10:29 EDT
-
Re: What about JSF 2.0? by Ric Wang on November 01 2007 12:42 EDT
- Re: What about JSF 2.0? by Ryan de Laplante on November 01 2007 03:21 EDT
-
Re: What about JSF 2.0? by Ric Wang on November 01 2007 12:42 EDT
-
Re: What about JSF 2.0? by Ryan de Laplante on October 31 2007 10:29 EDT
-
Re: What about JSF 2.0? by Ric Wang on October 29 2007 11:11 EDT
- Nice analysis by Kunal Mehrotra on October 26 2007 02:00 EDT
- it's also depend on your team by spambl spambl on October 26 2007 06:13 EDT
- Re: Differences between Struts and JSF? by Don Brown on October 26 2007 03:54 EDT
- Re: Differences between Struts and JSF? by Will Hartung on October 26 2007 12:56 EDT
- Re: Differences between Struts and JSF? by Ian Hlavats on October 26 2007 19:04 EDT
- Re: Differences between Struts and JSF? by Andrew Clifford on October 25 2007 22:19 EDT
- Re: Differences between Struts and JSF? by Alok Mittal on October 25 2007 13:24 EDT
- Seriously, though by David Moffat on October 25 2007 13:25 EDT
- Re: Differences between Struts and JSF? by Daniil S on October 25 2007 13:35 EDT
- Re: Differences between Struts and JSF? by Ricardo Lecheta on October 25 2007 21:48 EDT
-
No Ajax by Albert Gorski on October 26 2007 06:33 EDT
- Re: No Ajax by Ricardo Lecheta on October 26 2007 08:10 EDT
-
Re: Differences between Struts and JSF? by Gofhaone Taunyane on October 26 2007 08:44 EDT
- Re: Differences between Struts and JSF? by Eelco Hillenius on October 31 2007 02:07 EDT
-
No Ajax by Albert Gorski on October 26 2007 06:33 EDT
- Re: Differences between Struts and JSF? by Ricardo Lecheta on October 25 2007 21:48 EDT
- WebObjects, Tapestry, and Wicket by Bruce Fancher on October 25 2007 13:56 EDT
- Slight correction ... by Ashley Aitken on October 26 2007 07:58 EDT
- Grails! by Time PassX on October 25 2007 14:28 EDT
- Re: Grails! by artful dodger on October 26 2007 12:21 EDT
- I like pink bunnies! by Jesse Kuhnert on October 25 2007 14:49 EDT
- Clearly... by michael campbell on October 25 2007 18:22 EDT
- One vote for Struts 2 by Crawford Holden on October 26 2007 13:55 EDT
- Tapestry 5 by Craig Margenau on October 26 2007 22:22 EDT
- Re: Tapestry 5 by Maris Orbidans on October 27 2007 08:39 EDT
- Re: Tapestry 5 by Craig Margenau on October 28 2007 06:35 EDT
- Re: Tapestry 5 by Eelco Hillenius on October 31 2007 01:34 EDT
- Re: Tapestry 5 by Eelco Hillenius on October 31 2007 13:56 EDT
- Re: Tapestry 5 by Maris Orbidans on October 27 2007 08:39 EDT
- Forget XML-frameworks by Joonas Lehtinen on October 27 2007 11:28 EDT
- Re: Forget XML-frameworks by Eelco Hillenius on October 31 2007 14:00 EDT
- Layout management by Joonas Lehtinen on November 02 2007 08:33 EDT
- Re: Forget XML-frameworks by Eelco Hillenius on October 31 2007 14:00 EDT
- struts and components by Arron Bates on October 27 2007 22:22 EDT
- Re: Differences between Struts and JSF? by Artur Karazniewicz on October 28 2007 09:39 EDT
- The view of the competitivity by Sebastien Marc on October 30 2007 11:01 EDT
- I vote for ZK by JILL Zagat on October 31 2007 00:55 EDT
- Re: Differences between Struts and JSF? by rs ramaswamy on November 24 2007 08:56 EST
- If you are keeping alert of any by Paul Web on October 03 2011 21:36 EDT
-
Holy War begins in...[ Go to top ]
- Posted by: Cary Clark
- Posted on: October 25 2007 11:41 EDT
- in response to Joseph Ottinger
5...4...3...2...1 -
Re: Holy War begins in...[ Go to top ]
- Posted by: Bruno Borges
- Posted on: October 25 2007 11:51 EDT
- in response to Cary Clark
I posted yesterday something related to this in my blog: JSF Today: Standards versus OSS http://blog.brunoborges.com.br/2007/10/jsf-today-standards-versus-oss.html It's funny to see people "flashing back" to this subject... :) Regards -
I vote for GWT[ Go to top ]
- Posted by: Mark Davis
- Posted on: October 25 2007 12:57 EDT
- in response to Cary Clark
Imho GWT is the best at the moment. It is designed for Ajax. It is designed by people who proved that they are best in Ajax. It has reach set of UI controls (and there are a lot of free additional controls on market) It can let you write client side code in Java and debug it without dealing with JavaScript. You can write unit tests for UI. It is very simple (I've never imagine ajax framework can be that simple). It is very Object Oriented. You make develop it terms of classes that support inheritance not in terms of Components. It is Open Source project. Drawbacks of GWT - no commercial support. -
Re: I vote for GWT[ Go to top ]
- Posted by: jelmer kuperus
- Posted on: October 25 2007 14:05 EDT
- in response to Mark Davis
gwt++ -
Re: I vote for GWT[ Go to top ]
- Posted by: ss ss
- Posted on: October 26 2007 10:46 EDT
- in response to jelmer kuperus
I vote for Spring MVC. Moved away from struts 2 years ago, and have been happily using spring mvc ever since. -
Re: I vote for GWT[ Go to top ]
- Posted by: Adam John
- Posted on: October 26 2007 11:13 EDT
- in response to ss ss
Apache Tomahawk, Trinidad +1 GWT +1 Struts -1 -
Re: I vote for GWT[ Go to top ]
- Posted by: Sergey Smirnov
- Posted on: October 25 2007 14:18 EDT
- in response to Mark Davis
Imho GWT is the best at the moment.
You forgot the most important point that keeps this stuff still alive - it is promoted by Google.
It is designed for Ajax.
It is designed by people who proved that they are best in Ajax.
It has reach set of UI controls (and there are a lot of free additional controls on market)
It can let you write client side code in Java and debug it without dealing with JavaScript.
You can write unit tests for UI.
It is very simple (I've never imagine ajax framework can be that simple).
It is very Object Oriented. You make develop it terms of classes that support inheritance not in terms of Components.
It is Open Source project.Drawbacks of GWT - no commercial support.
Last time, Google has a strange tendency to kill any commercial initiatives. Good example is "My Maps" that killed tons of new mashup-oriented startups. -
I Vote for Thinwire[ Go to top ]
- Posted by: Pether Sorling
- Posted on: October 25 2007 15:04 EDT
- in response to Mark Davis
Thinwire : http://www.thinwire.com/ Thinwire vs GWT overview http://www.thinwire.com/?n=Participate.ThinWireVsGWT Comparison of AJAX Frameworks: Prototype, GWT, DWR and Thinwire http://ajax.javabeat.net/articles/2007/05/comparison-of-ajax-frameworks-prototype-gwt-dwr-thinware/ -
Re: I vote for GWT[ Go to top ]
- Posted by: David McCoy
- Posted on: October 25 2007 16:17 EDT
- in response to Mark Davis
+1 GWT is an awesome tool. -
Re: I vote for GWT[ Go to top ]
- Posted by: Thai Dang Vu
- Posted on: October 25 2007 17:25 EDT
- in response to Mark Davis
First, I'd like to say that these are only my opinions (can be right or wrong).Imho GWT is the best at the moment.
I don't think so. I think RichFaces & Trinidad have more components (I don't provide the link to rf & trinidad live demos because I don't want to persuade you that rf & trinidad have more components than gwt).
...
It has reach set of UI controls (and there are a lot of free additional controls on market)It can let you write client side code in Java and debug it without dealing with JavaScript.
That's what I like in gwt.You can write unit tests for UI.
If I use a jsf component set, that set guarantees me that all the generated javascript code works correctly. Then, why do I need to test if those components work correctly or not?It is very simple (I've never imagine ajax framework can be that simple).
Maybe, it took me less time to learn gwt than jsf.It is Open Source project.
Is there any commercial jsf implementation? There are a few commercial jsf component sets, but all the free jsf component sets are enough, I assume.
A few questions for gwt users:
1. any way to not compile the whole project if there is only one change in one java file in the client directory?
2. it took me 37s on my PIV 3Ghz with hyper threading technology machine to send 200 rows of 5 columns each from the server to the gwt client and display them in a flex table. any way to make it faster? (don't ask me to reduce the 200 to 20. 200 is a beautiful number that the client wants). it will take me less than 5s if I use jsp. -
Re: I vote for GWT[ Go to top ]
- Posted by: Mark Davis
- Posted on: October 26 2007 12:27 EDT
- in response to Thai Dang Vu
GWT components from different vendors can be used together. Try to use IceFaces with RichFaces.Imho GWT is the best at the moment.
...
It has reach set of UI controls (and there are a lot of free additional controls on market)
I don't think so. I think RichFaces & Trinidad have more components (I don't provide the link to rf & trinidad live demos because I don't want to persuade you that rf & trinidad have more components than gwt).
What if you misused compoent, or created your own and want to test? What if you want to test client side logic? There are many cases where you need client side debugging.You can write unit tests for UI.
If I use a jsf component set, that set guarantees me that all the generated javascript code works correctly. Then, why do I need to test if those components work correctly or not?re:1. any way to not compile the whole project if there is only one change in one java file in the client directory?
No, but you can make the compilation process much faster. While developing build only for one browser and add more memory to gwt compiler.it took me 37s on my PIV 3Ghz with hyper threading technology machine to send 200 rows of 5 columns each from the server to the gwt client and display them in a flex table. any way to make it faster? (don't ask me to reduce the 200 to 20. 200 is a beautiful number that the client wants). it will take me less than 5s if I use jsp.
It takes time not to send but to display. That's because of client side rendering. Try to use text in cells, not objects. If your application still not fast enough you'll have to draw rows on server and send html on client. (ugly but works). --Mark -
Re: I vote for GWT[ Go to top ]
- Posted by: Adrian Marti
- Posted on: October 26 2007 13:21 EDT
- in response to Mark Davis
another one here for GWT. At this point i really can't stand doing webapp work in anything else. previously used: jsp/servlets, tapestry 3, jsf, rails/jror, springmvc adrian -
Re: I vote for GWT[ Go to top ]
- Posted by: Thai Dang Vu
- Posted on: October 26 2007 19:19 EDT
- in response to Mark Davis
Thanks Mark for some advices. I hope you don't bother giving some more detailed advices.While developing build only for one browser and add more memory to gwt compiler
Add more memory to the gwt compiler means -Xmx1024m, isn't it? And how can I tell gwt compiler to create the javascript for IE only? (if you don't have time to answer, a link to some page telling that is much appreciated). -
Re: I vote for GWT[ Go to top ]
- Posted by: Mark Davis
- Posted on: October 27 2007 04:22 EDT
- in response to Thai Dang Vu
Thanks Mark for some advices. I hope you don't bother giving some more detailed advices.
During development I recomend to compile to Firefox or IE for one language. By default GWT compiles to all browsers for all languages. Add this to your .gwt.xml file <!-- in case you use ugly m$ browser for development <set-property name="user.agent" values="ie6"/> --> Good luck ;-) PS One more coin to GWT GWT forum is extreemly user friendly (comparing to Hibernate forum).While developing build only for one browser and add more memory to gwt compiler
Add more memory to the gwt compiler means -Xmx1024m, isn't it? And how can I tell gwt compiler to create the javascript for IE only? (if you don't have time to answer, a link to some page telling that is much appreciated). -
not the only drawbacks[ Go to top ]
- Posted by: Marie Antoinette
- Posted on: October 25 2007 19:58 EDT
- in response to Mark Davis
GWT only allows Java 1.4 code for the client side. Also it is limited in the API's that it supports, which is understandable, but you need to be very careful. -
Re: I vote for GWT[ Go to top ]
- Posted by: Eirik Rosvold Larsen
- Posted on: October 26 2007 03:17 EDT
- in response to Mark Davis
Drawbacks of GWT - no commercial support.
Hi Mark. Have you checked out the support in Seam for calling ajax-enabled serverside components from GWT? It's pretty smooth.. -
I vote for Server-Centric architecture[ Go to top ]
- Posted by: Samia Fn
- Posted on: October 28 2007 10:55 EDT
- in response to Mark Davis
It is strange to compare GWT with Struts and JSF. GWT is client-centric architecture, while the others are server-centric. Client-centric is better for light-weight applications/websites. Otherwise, GWT is tend to bring back the age of fat clients if you design it carelessly. That said, too many codes will be written at the client and then open up security/maintenance headache. It is the common problems in fat client/server architecture. No mention JavaScript is notorious for its bad performance. Try to create a moderate big table with GWT and compare it with JSF/Struts. If you want to use load-on-demand with GWT, you are throwing stones on your nails. On the other hand, you can use JSF's data model directly. For security, try to access, say, Paypal with GWT. Or, dare you? There are a lot of server-centric frameworks. My personal preference is ZK. It is the most intuitive yet powerful framework I ever tried. -
Re: I vote for Server-Centric architecture[ Go to top ]
- Posted by: Mark Davis
- Posted on: October 28 2007 12:55 EDT
- in response to Samia Fn
It is strange to compare GWT with Struts and JSF. GWT is client-centric architecture, while the others are server-centric.
Correction - GWT is not client centric. It is client-server.That said, too many codes will be written at the client and then open up security/maintenance headache. It is the common problems in fat client/server architecture.
UI logic, not security logic should be implemented in client part. Nobody forces you to do security checks on clientNo mention JavaScript is notorious for its bad performance.
Rendering on client saves CPU time of your server. More over, no server neither client have to rerender page each on click.
Have you ever tried to use big table in IceFaces or Infragestics? Or any other AJAX JSF solution?
Try to create a moderate big table with GWT and compare it with JSF/Struts. If you want to use load-on-demand with GWT, you are throwing stones on your nails. On the other hand, you can use JSF's data model directly.For security, try to access, say, Paypal with GWT. Or, dare you?
What problems did you have with paypal? ;-) -
Re: I vote for Server-Centric architecture[ Go to top ]
- Posted by: Jacob Hookom
- Posted on: October 29 2007 00:00 EDT
- in response to Mark Davis
Rendering on client saves CPU time of your server. More over, no server neither client have to rerender page each on click.
In an AJAX world, what's a "click"? To really gain what you're talking about, you need to migrate away from a page-oriented flow whereas most apps still use AJAX as a supplementary facet of web application development. In addition, the mechanics of GWT basically require subsequent requests on load to populate dynamic-server based content (your clicks are driven by code instead of by the user). In a JSF/traditional call, you can simply render everything up front in the first request-- lending itself as being actually more efficient than GWT for a majority of web apps. -
Re: I vote for Server-Centric architecture[ Go to top ]
- Posted by: Mark Davis
- Posted on: October 29 2007 14:32 EDT
- in response to Jacob Hookom
Same as in NOT AJAX world ;-)Rendering on client saves CPU time of your server.
More over, no server neither client have to rerender page each on click.
In an AJAX world, what's a "click"?To really gain what you're talking about, you need to migrate away from a page-oriented flow whereas most apps still use AJAX as a supplementary facet of web application development.
That's because most web apps are written on LAMP.In addition, the mechanics of GWT basically require subsequent requests on load to populate dynamic-server based content (your clicks are driven by code instead of by the user). In a JSF/traditional call, you can simply render everything up front in the first request-- lending itself as being actually more efficient than GWT for a majority of web apps.
Do you REALLY think that to rerender whole page just to validate user input is more efficient? I'm not talking about how it ugly looks to user. -
Re: I vote for Server-Centric architecture[ Go to top ]
- Posted by: Jacob Hookom
- Posted on: October 29 2007 14:55 EDT
- in response to Mark Davis
Do you REALLY think that to rerender whole page just to validate user input is more efficient?
No, I don't. Even LAMP solutions can do client-side validation. The only optimization a GWT-like deployment offers is when you want to provide multiple views over the same data-- not requiring another request to the server. Often these use cases are still supplemented by secondary AJAX functionality without locking your application into a different development paradigm. That simple, secondary AJAX functionality can be fulfilled by near every web-framework out there and isn't purely a benefit owned by GWT.
I'm not talking about how it ugly looks to user. -
Re: I vote for Server-Centric architecture[ Go to top ]
- Posted by: Eelco Hillenius
- Posted on: October 31 2007 14:12 EDT
- in response to Jacob Hookom
To really gain what you're talking about, you need to migrate away from a page-oriented flow whereas most apps still use AJAX as a supplementary facet of web application development.
Yes, let's get away from page-oriented flow! Whether you use Ajax as a supplementary facet or not. * I know I took this out of context Jacob. :-) -
Client must not be bogged down with Javascript![ Go to top ]
- Posted by: Inf ernoz
- Posted on: November 01 2007 06:47 EDT
- in response to Mark Davis
Rendering on client saves CPU time of your server.
More over, no server neither client have to rerender page each on click.The trouble is customers can outright reject your work if javascript bogs down their web client, I had it happen to me, fool! It is often much faster (for page download and render time) and more efficient to write proper optimised server code (and data storage) which the client can make requests to, the browser should not be treated as a heavy Javascript client. Visitors do give a shit about page download and render time, too long and they are gone, even for intranets!
-
JSF, Struts, blech[ Go to top ]
- Posted by: Derek Ward
- Posted on: October 25 2007 15:10 EDT
- in response to Cary Clark
DWR + Dojo! I'm done with Struts, JSF, and other heavyweight MVC frameworks. -
Re: JSF, Struts, blech[ Go to top ]
- Posted by: Jin Chun
- Posted on: October 25 2007 17:12 EDT
- in response to Derek Ward
DWR + [pick one] -
At the risk of sounding too harsh...[ Go to top ]
- Posted by: Marc Stock
- Posted on: October 25 2007 11:49 EDT
- in response to Joseph Ottinger
Both frameworks are abysmal. It's like asking someone if they prefer Hitler to Stalin. A better question might be, "If you could use any web framework besides Struts or JSF at your current job, what would it be and why?" Another option would be, "If you are currently satisfied with Struts or JSF, please explain why so we can laugh at you." -
Re: At the risk of sounding too harsh...[ Go to top ]
- Posted by: Rene Davila
- Posted on: October 25 2007 12:24 EDT
- in response to Marc Stock
Both frameworks are abysmal. It's like asking someone if they prefer Hitler to Stalin. A better question might be, "If you could use any web framework besides Struts or JSF at your current job, what would it be and why?" Another option would be, "If you are currently satisfied with Struts or JSF, please explain why so we can laugh at you."
May I ask: what do you use? I won't laugh I just want to know any better option. -
They both suck[ Go to top ]
- Posted by: greg matthews
- Posted on: October 25 2007 19:57 EDT
- in response to Rene Davila
I use Spring Webflow (SWF), since it has the notion of a conversation -- whereas Struts does not. My next choice would be Seam, although I haven't used that much yet. All I really know is that Seam also has the notion of a conversation. Struts is also 'forward' based whereas SWF implements PRG (Post Redirect Get) out of the box. Since SWF also provides flow, conversation, and flash scopes, the form backing object also stays a lot cleaner (than say, Spring MVC or Struts form backing objects), and so you feel less dirty passing a SWF command object down to the business logic layer. Command objects under SWF start to quite closely resemble the GOF command object pattern. For me, JSF sort of missed the point. Web development isn't so much about a single page, but the flow between pages which everything except SWF and Seam seem to handle abysmally. I'm also looking at http://extjs.com with interest. Looks damn impressive. ( -
Re: At the risk of sounding too harsh...[ Go to top ]
- Posted by: Gofhaone Taunyane
- Posted on: October 26 2007 09:14 EDT
- in response to Marc Stock
. . . . . "If you are currently satisfied with Struts or JSF, please explain why so we can laugh at you."
LOL! -
Re: At the risk of sounding too harsh...[ Go to top ]
- Posted by: ss ss
- Posted on: October 26 2007 10:25 EDT
- in response to Marc Stock
Both frameworks are abysmal. It's like asking someone if they prefer Hitler to Stalin. A better question might be, "If you could use any web framework besides Struts or JSF at your current job, what would it be and why?" Another option would be, "If you are currently satisfied with Struts or JSF, please explain why so we can laugh at you."
Good one!! -
Well, if it weren't for bad programmers. . .[ Go to top ]
- Posted by: JIM BEDENBAUGH
- Posted on: October 29 2007 16:52 EDT
- in response to Marc Stock
I enforce Struts usage not because it's easy to use; it's not. I enforce Struts usage not because it's easy to learn; it's not. I enforce Struts usage because at least it imposes some semblance of MVC, although I have yet to meet a developer who hasn't found some way to screw this up too. . . -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Sergey Smirnov
- Posted on: October 25 2007 12:29 EDT
- in response to Joseph Ottinger
Looks like a post from the deeply past. Who cares about what is a difference between two those ones now? There are many new frameworks that pretend to be known. Let them to fight between each other. - Sergey JSFTutorials.net JBoss RichFaces -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Mark N
- Posted on: October 25 2007 13:23 EDT
- in response to Sergey Smirnov
Looks like a post from the deeply past. Who cares about what is a difference between two those ones now? There are many new frameworks that pretend to be known. Let them to fight between each other.
Can we debate VHS vs Beta next?
-
Sergey
JSFTutorials.net
JBoss RichFaces -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Sergey Smirnov
- Posted on: October 25 2007 14:13 EDT
- in response to Mark N
Did you see a "new" keyword in my post?Looks like a post from the deeply past. Who cares about what is a difference between two those ones now? There are many new frameworks that pretend to be known. Let them to fight between each other.
-
Sergey
JSFTutorials.net
JBoss RichFaces
Can we debate VHS vs Beta next? -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Mark N
- Posted on: October 25 2007 14:59 EDT
- in response to Sergey Smirnov
Yes. I was just furthering your "who cares" argument.Looks like a post from the deeply past. Who cares about what is a difference between two those ones now? There are many new frameworks that pretend to be known. Let them to fight between each other.
-
Sergey
JSFTutorials.net
JBoss RichFaces
Can we debate VHS vs Beta next?
Did you see a "new" keyword in my post? -
I'd go JSF/Seam[ Go to top ]
- Posted by: Steven Boscarine
- Posted on: October 25 2007 12:53 EDT
- in response to Joseph Ottinger
Neither framework is perfect. I actually like JSF for it's view components, so laugh away. My team members all prefer it as well. While using it, I found at least a dozen "features" that could have been better designed or more thought out. However, being able to add ajax-enabled features and rich widgets with virtually no effort on my part, makes up for it's overall cumbersome design. Seam also has a lot of great potential which I haven't been able to explore fully just yet. I dislike Struts quite a bit. I haven't used it since the 1.x days, so cannot comment on the most recent releases. I'm also curious as to the superior framework, Marc. Please have your laugh and share with us your infinite wisdom on where so many of us have gone wrong. -
webwork user here[ Go to top ]
- Posted by: Frans Thamura
- Posted on: October 25 2007 13:03 EDT
- in response to Steven Boscarine
we are using webwork since 1.x, and move to struts, because webwork guy move to struts. and we love it, because the technology is not amazing to fast like JSF, dont know what happen in the future of JSF, will this tech become heavy complex but i am learning JSF for review. -
Re: I'd go JSF/Seam[ Go to top ]
- Posted by: Marc Stock
- Posted on: October 25 2007 13:35 EDT
- in response to Steven Boscarine
Steve, I will never claim to have "infinite wisdom". However, I can recognize a turd pretty easily and lets face it, that doesn't take a genius. Seriously, during your experiences with JSF, you haven't sat there and wondered why you have to deal with numerous XML files and the high learning curve of JSF just to spit out a simple web page? Why they have to wrap JSF with other frameworks like Facelets and Seam just to keep the smell down? The problem with the Java community is that it's gotten way too comfortable with unnecessary complexity. This is what the Rails snobs laugh at all the time and, at least in that regard, they are absolutely right. As for my framework of choice, I like Wicket. It's component based, there's no XML, HTML stays HTML so GUI developers can maintain it themselves, it has Ajax components out of the box, small learning curve (although the online docs could be better), auto session management, etc. -
Re: Wicket online doc[ Go to top ]
- Posted by: Kent Tong
- Posted on: October 25 2007 22:19 EDT
- in response to Marc Stock
As for my framework of choice, I like Wicket. It's component based, there's no XML, HTML stays HTML so GUI developers can maintain it themselves, it has Ajax components out of the box, small learning curve (although the online docs could be better), auto session management, etc.
To complement the online docs, I've written some tutorials on Wicket at http://www.agileskills2.org/EWDW/chapters1-3.pdf. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Will Hartung
- Posted on: October 25 2007 13:20 EDT
- in response to Joseph Ottinger
Routing around the hyperbole and actually trying to answer the question... The key differences between the two are the base paradigms that underly each platform. Specifically, JSF is a "component" framework whereas Struts is an "action" framework. What does that mean? In a component framework, artifacts that are rendered on the page are initially developed as individual components, much like in modern GUI "fat client" libraries. You have components, they have events, and your code is written to work with those events against the components. Most of the time, in mainstream development, your code is pretty much ignorant of the HTTP request cycle and processing. Struts (both 1 and 2) are action frameworks. In essence they give you the ability to map URLs to activities and code on the back end. Here, the layout and workflow tends to be more page oriented. As a developer you tend to interact with the HTTP request cycle directly, though Struts 2 helps isolate at least the binding of the request data to the action implementation classes. Action frameworks tend to be much "thinner" in how they stand between your code and the raw HTTP request compared to component frameworks. For those people just cutting their teeth on web development, the component frameworks (especially with good tooling) can be much more approachable, as the tools tend to hide the heavy weight nature of the component frameworks. But, on the downside, their size and their "square peg in to round hole" nature of turning HTTP requests in to the rough equivalent of mouse clicks mean there's more complexity to try to understand if and when the framework starts misbehaving or getting in the way. But, to be fair, frameworks like ASP.NET and JSF are popular because novices can get quick success with them with the modern tools. Old School HTTP wranglers may simply be more comfortable with action frameworks, simply because they've been through the crucible of understanding how HTTP requests are structured. Action frameworks tend to work better with "pretty" urls (though component frameworks are getting better at his). Action framework coders can have more control of the structure and presentation of URLs, since their systems are more intimately tied to them compared to a component framework. As a basic guideline, I find the action frameworks are better for "web sites", site like this one, sites that focus on delivering content to the user. Where it's mostly a "read only" experience for the end user who is likely to want to bookmark things, come back to arbitrarily deep pages, etc. But the component frameworks are better for "web apps". CRUD screens, back office applications, lots of forms and controls, etc. Here, the workflow is more controlled. You tend to not get to a "detail" screen with going through the "list" screen or "header" screen first, for example. It's nice to be able to just drag and drop a grid component on to a form, add a couple of buttons and point it as a DB table to get "instant" results. But these apps don't bookmark well, HATE the "refresh button", may behave poorly with the back button, etc. Overall, they can not be very good citizens when working with the web browser. So, if it were me, I'd write a blog in a action framework like Struts 2 (or even better, Stripes), but I'd write an accounting package in JSF. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Andrew Clifford
- Posted on: October 25 2007 22:19 EDT
- in response to Will Hartung
Action-centric frameworks have components too - taglibs. They just never seemed to take off beyond struts taglibs and jstl. You would never think to extend the struts taglibs but that is what you can do (more easily) with JSF components by writing your own, extending, renderers, etc. The architectural smell about JSF is the tight coupling with everything: committees, servlet and jsp specs, with other component libraries, specific dependencies on implementations, the need to tack on other third party libraries to make it useful - facelets. Tack on tools to get that sweet smell of vendor lock to top it all off. I like SpringMVC just because it's so light, portable, and decoupled. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Will Hartung
- Posted on: October 26 2007 13:03 EDT
- in response to Andrew Clifford
Action-centric frameworks have components too - taglibs. They just never seemed to take off beyond struts taglibs and jstl.
You haven't seen my code. I make extensive use of Tag Files in building our pages, and think that they are one of the unsung heroes of modern JSP. Our pages are very clean because of it. In the end, though, they don't offer the granularity of control or events that a full bore component framework offers. If they did, then I would have written my own component framework. And also, tag libs are JSP specific, whereas JSP is a only one of many rendering options (though Freemarker and Velocity have similar mechanisms). With the action frameworks, the rendering mechanism can more easily by separated from the actual back end framework. -
What about JSF 2.0?[ Go to top ]
- Posted by: Ryan de Laplante
- Posted on: October 28 2007 12:55 EDT
- in response to Andrew Clifford
The architectural smell about JSF is the tight coupling with everything: committees, servlet and jsp specs, with other component libraries, specific dependencies on implementations, the need to tack on other third party libraries to make it useful - facelets. Tack on tools to get that sweet smell of vendor lock to top it all off.
FYI, JSF 2.0 takes the best of all those addons and builds them into JSF. JSP will no longer be the default view technology. The replacement will be built from a combination of Facelets + JSFTemplating + Clay. The Managed Beans functionality is being replaced by WebBeans -- a combination of Seam component model + Google Guice. WebBeans is kind of like Spring (same sort of idea) but does things differently. The UI component model is being completely redesigned for simplicity. Built in AJAX support is a top priority. The JSF 2.0 expert group has been studying other web frameworks such as Wicket and even Ruby on Rails for inspiration. So JSF is coupled to servlets, but SpingMVC and every other web framework isn't? You know JSF being tied to other JSR standard makes it portable. That is the whole point of every JSR standard. You are not locked into any one vendor. All Java EE5 app servers support the same JSR standards if they want to be certified. The Java EE5 certification is must more strict than the J2EE 1.4 certification. +1 for JSF. I like JSF just because it's so portable, decoupled, and JSF 2.0 will be light.
I like SpringMVC just because it's so light, portable, and decoupled. -
Re: What about JSF 2.0?[ Go to top ]
- Posted by: Ric Wang
- Posted on: October 29 2007 11:11 EDT
- in response to Ryan de Laplante
Yeah, those all sounds good. But sorry for being sarcastic here, is JSF 2.0 going to be released some time with the current decade? Any guess on by that time, what other better alternatives will be there? -
Re: What about JSF 2.0?[ Go to top ]
- Posted by: Ryan de Laplante
- Posted on: October 31 2007 22:29 EDT
- in response to Ric Wang
Yeah, those all sounds good. But sorry for being sarcastic here, is JSF 2.0 going to be released some time with the current decade? Any guess on by that time, what other better alternatives will be there?
The JCP page for JSF 2.0 says that there will be a public review in 3 months, final spec in April (with a beta RI), then the release timed with Java EE 6 (Q3 2008). Those who use Sun's Application Server (GlassFish) like we do will be able to take advantage of Java EE 6 as soon as it's available. The rest will have to wait another 6+ months for their vendor to support it. I'm looking forward to JSF 2.0, WebBeans, EJB 3.1, JPA 2.0, Servlets 3.0, etc. Very exciting stuff. -
Re: What about JSF 2.0?[ Go to top ]
- Posted by: Ric Wang
- Posted on: November 01 2007 00:42 EDT
- in response to Ryan de Laplante
That time line basically says you don't even need to think about it now. 6+ months is a very long time on a tech watch. Q3 2008? Forget about it, that means it's irrelevant now.Yeah, those all sounds good. But sorry for being sarcastic here, is JSF 2.0 going to be released some time with the current decade? Any guess on by that time, what other better alternatives will be there?
The JCP page for JSF 2.0 says that there will be a public review in 3 months, final spec in April (with a beta RI), then the release timed with Java EE 6 (Q3 2008). Those who use Sun's Application Server (GlassFish) like we do will be able to take advantage of Java EE 6 as soon as it's available. The rest will have to wait another 6+ months for their vendor to support it.
I'm looking forward to JSF 2.0, WebBeans, EJB 3.1, JPA 2.0, Servlets 3.0, etc. Very exciting stuff. -
Re: What about JSF 2.0?[ Go to top ]
- Posted by: Ryan de Laplante
- Posted on: November 01 2007 15:21 EDT
- in response to Ric Wang
That time line basically says you don't even need to think about it now. 6+ months is a very long time on a tech watch. Q3 2008? Forget about it, that means it's irrelevant now.
I am happy with JSF 1.2 and use it in production today. I am looking forward to JSF 2.0, and completely disagree with those who say that JSF 1.2 is terrible. -
Nice analysis[ Go to top ]
- Posted by: Kunal Mehrotra
- Posted on: October 26 2007 02:00 EDT
- in response to Will Hartung
Routing around the hyperbole and actually trying to answer the question...
Wow Will! After a long time I got to read some sensible analysis on technology than usual incoherent claptrap.
The key differences between the two are the base paradigms that underly each platform.
Specifically, JSF is a "component" framework whereas Struts is an "action" framework.
What does that mean?
In a component framework, artifacts that are rendered on the page are initially developed as individual components, much like in modern GUI "fat client" libraries. You have components, they have events, and your code is written to work with those events against the components.
Most of the time, in mainstream development, your code is pretty much ignorant of the HTTP request cycle and processing.
Struts (both 1 and 2) are action frameworks. In essence they give you the ability to map URLs to activities and code on the back end. Here, the layout and workflow tends to be more page oriented. As a developer you tend to interact with the HTTP request cycle directly, though Struts 2 helps isolate at least the binding of the request data to the action implementation classes.
Action frameworks tend to be much "thinner" in how they stand between your code and the raw HTTP request compared to component frameworks.
For those people just cutting their teeth on web development, the component frameworks (especially with good tooling) can be much more approachable, as the tools tend to hide the heavy weight nature of the component frameworks. But, on the downside, their size and their "square peg in to round hole" nature of turning HTTP requests in to the rough equivalent of mouse clicks mean there's more complexity to try to understand if and when the framework starts misbehaving or getting in the way.
But, to be fair, frameworks like ASP.NET and JSF are popular because novices can get quick success with them with the modern tools.
Old School HTTP wranglers may simply be more comfortable with action frameworks, simply because they've been through the crucible of understanding how HTTP requests are structured. Action frameworks tend to work better with "pretty" urls (though component frameworks are getting better at his). Action framework coders can have more control of the structure and presentation of URLs, since their systems are more intimately tied to them compared to a component framework.
As a basic guideline, I find the action frameworks are better for "web sites", site like this one, sites that focus on delivering content to the user. Where it's mostly a "read only" experience for the end user who is likely to want to bookmark things, come back to arbitrarily deep pages, etc.
But the component frameworks are better for "web apps". CRUD screens, back office applications, lots of forms and controls, etc. Here, the workflow is more controlled. You tend to not get to a "detail" screen with going through the "list" screen or "header" screen first, for example.
It's nice to be able to just drag and drop a grid component on to a form, add a couple of buttons and point it as a DB table to get "instant" results. But these apps don't bookmark well, HATE the "refresh button", may behave poorly with the back button, etc. Overall, they can not be very good citizens when working with the web browser.
So, if it were me, I'd write a blog in a action framework like Struts 2 (or even better, Stripes), but I'd write an accounting package in JSF. -
it's also depend on your team[ Go to top ]
- Posted by: spambl spambl
- Posted on: October 26 2007 06:13 EDT
- in response to Kunal Mehrotra
I don't think that it only depend on the webapp type, component vs action, but also on the dev team, personally if I have a small team with guru's, I will use velocity, with velocity you can create your own ui component and your own navigation controller, and adapt it to each webapp I think that each web framework represent the vision of the one hwo developp it, velocity let me adapt my component/controller to each webapp I create -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Don Brown
- Posted on: October 26 2007 03:54 EDT
- in response to Will Hartung
Great post Will! If you don't mind, I'd like to add it to the Struts 2 FAQ as it perfectly answers the question of when to choose an action-based or component-based framework; I'll even leave the Stripes bit in ;) The only point I'd add is that action-based frameworks, Struts 2 in particular, are a better match for Rest-oriented designs and client-side heavy designs that use Dojo and other libraries to consume server-side JSON/XML services. For example, I'm writing a Struts 2 plugin that simplifies writing Rest resources and automatically supports multiple data representation formats so a Dojo component could consume JSON while a third-party client could use XML. Since you need full control over the URL and response headers, action-based frameworks are a great fit. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Will Hartung
- Posted on: October 26 2007 12:56 EDT
- in response to Don Brown
Great post Will! If you don't mind, I'd like to add it to the Struts 2 FAQ as it perfectly answers the question of when to choose an action-based or component-based framework; I'll even leave the Stripes bit in ;)
Sure, free free to copy it wholesale in to the FAQ if you like.The only point I'd add is that action-based frameworks, Struts 2 in particular, are a better match for Rest-oriented designs and client-side heavy designs that use Dojo and other libraries to consume server-side JSON/XML services.
Yes, of course. This is lightly implied by the mention of how an action framework has more control over the URLs. I was simply trying to answer the question at hand rather than go down in to the depths of the further ramifications of the frameworks beyond your base requirements for web applications. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Ian Hlavats
- Posted on: October 26 2007 19:04 EDT
- in response to Will Hartung
It's nice to be able to just drag and drop a grid component on to a form, add a couple of buttons and point it as a DB table to get "instant" results. But these apps don't bookmark well, HATE the "refresh button", may behave poorly with the back button, etc. Overall, they can not be very good citizens when working with the web browser.
Excellent post Will. Thank you for increasing the signal-to-noise ratio of this thread. JSF is complex, but so is Swing. In both cases, the complexity of these GUI development frameworks or toolkits also an indication of their power. I think some developers new to JSF may be frustrated by the learning curve, but I can safely say at this stage (having climbed it myself) that the rewards are huge. JSF truly separates UI design from programming, meaning Web designers and Java developers can do the things they do best within the same framework. I love being able to drag-and-drop a command button onto my page in Dreamweaver, wire it up to an EJB3 stateful session bean with some EL, load the view in my browser, click the button, and debug my code in Eclipse. Leveraging the full power of the Java EE stack from your UI is awesome. The criticism that you need other frameworks to make JSF usable completely misses the point. JSF was designed for extensibility, and frameworks like Facelets and Seam take full advantage of that to add new features to the framework, such as advanced view composition, binding UI components to EJBs, and much more. Those efforts are also helping to define new standards for enterprise Java-based Web development and are leading the way to enhancements to the JSF framework. JSF is still young, and is evolving. Third-party frameworks like Facelets and Seam are a clear indication of this, and the wide range of UI component libraries promote innovation and reusability. As for the back button issue, I thought we solved that problem with the Post-Redirect-Get pattern. As for bookmarking, I'm leaning towards REST principles and pull-style MVC to make my URLs easier to work with. Have you looked at the Seam RESTful blog application example? Ian Hlavats JSFToolbox for Dreamweaver UI Design with JSF, Dreamweaver, and the JSFToolbox
So, if it were me, I'd write a blog in a action framework like Struts 2 (or even better, Stripes), but I'd write an accounting package in JSF. -
Diffs[ Go to top ]
- Posted by: Rich Argo
- Posted on: October 30 2007 17:54 EDT
- in response to Ian Hlavats
As for the back button issue, I thought we solved that problem with the Post-Redirect-Get pattern.
The Post-Redirect-Get pattern only really works in the Web 1.0 world. With Web 2.0 (i.e.: AJAX), that all falls apart. As for frameworks, the only one I have truly been impressed with is Stripes. I was able to get up to speed with it in 20 minutes. Interestingly, Stripes uses what's already available as of Java 1.5 and servlet 2.4 (annotations, generics, JSTL, etc...) and takes it to the fullest potential (or close to it). You don't have to completely learn everything all over again with it. In a sense, there really was not ever a need for JSF. We already had custom tags to create components with. JSP was not the problem, scriptlets were and JSTL fixed that. Besides, JSF *is* also action-based under the hood like everything else. It just *also* happens to have a complicated component framework and touts itself as "component-based". -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Alok Mittal
- Posted on: October 25 2007 13:24 EDT
- in response to Joseph Ottinger
Using plain JSF does not give you any value addition. Availability of ready made components in JSF based rich frameworks (ICEFaces, RichFaces and a few others) is where it pays off. You can't easily mix and match components from different JSF based frameworks yet, but hopefully it will move towards that. -
Seriously, though[ Go to top ]
- Posted by: David Moffat
- Posted on: October 25 2007 13:25 EDT
- in response to Joseph Ottinger
JSF was designed by the same folks who developed Struts, applying the lessons they learned from doing Struts. David Geary, at least, pretty much disavows Struts. You'll find JSF to be more flexible in many areas, as revealed in this (serious) comparison: http://websphere.sys-con.com/read/46516.htm P.S. If you are new to this forum, you may be surprised to find that the majority of answers to serious questions are smart-alecky, beside the point, and often vulgar. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Daniil S
- Posted on: October 25 2007 13:35 EDT
- in response to Joseph Ottinger
There's way too much focus on those two frameworks recently. Everyone tries to push them and everyone seems to hate them. At the same time whole web world goes in the same direction. Even PHP finally starts to get it. Despite all that, my personal preference is Stripes framework. How much more easy can it get? -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Ricardo Lecheta
- Posted on: October 25 2007 21:48 EDT
- in response to Daniil S
Hi, I used Struts 1.x, and a lot of WebWork 2 (Struts 2)... I also evaluated GWT, Wicket, Tapestry, Stripes... but forget all of them, the Click framework is definitely the most simple and easy to use and learn. It has a lot of components out of the box, good documentation, it is page oriented (but can be used as a action framework too)... it looks like wicket but it is more simple. See the examples and source code for yourself: http://www.avoka.com:8080/click-examples/home.htm -
No Ajax[ Go to top ]
- Posted by: Albert Gorski
- Posted on: October 26 2007 06:33 EDT
- in response to Ricardo Lecheta
Is there any possibility to use Ajax? Looks to be slow. greetings, Albert -
Re: No Ajax[ Go to top ]
- Posted by: Ricardo Lecheta
- Posted on: October 26 2007 08:10 EDT
- in response to Albert Gorski
Hi, unfortunately not, this is on of the drawbacks of click. You must create your own components and override the toString() method to generate some ajax stuff... -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Gofhaone Taunyane
- Posted on: October 26 2007 08:44 EDT
- in response to Ricardo Lecheta
Hi,
Yes Click is very easy and intuitive, the only downside being Strong Ajax support.
I used Struts 1.x, and a lot of WebWork 2 (Struts 2)... I also evaluated GWT, Wicket, Tapestry, Stripes...
but forget all of them, the Click framework is definitely the most simple and easy to use and learn. It has a lot of components out of the box, good documentation, it is page oriented (but can be used as a action framework too)... it looks like wicket but it is more simple. See the examples and source code for yourself:
http://www.avoka.com:8080/click-examples/home.htm -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Eelco Hillenius
- Posted on: October 31 2007 14:07 EDT
- in response to Gofhaone Taunyane
One of the best things about Click imho is that the code base is tiny, making it very easy to trace back errors and making you less dependent on a magical box. But The other side of simplicity is that it won't help you as much with complex scenarios. And that's one of Wicket's best parts: it scales really well for development.Hi,
I used Struts 1.x, and a lot of WebWork 2 (Struts 2)... I also evaluated GWT, Wicket, Tapestry, Stripes...
but forget all of them, the Click framework is definitely the most simple and easy to use and learn. It has a lot of components out of the box, good documentation, it is page oriented (but can be used as a action framework too)... it looks like wicket but it is more simple. See the examples and source code for yourself:
http://www.avoka.com:8080/click-examples/home.htm
Yes Click is very easy and intuitive, the only downside being Strong Ajax support. -
WebObjects, Tapestry, and Wicket[ Go to top ]
- Posted by: Bruce Fancher
- Posted on: October 25 2007 13:56 EDT
- in response to Joseph Ottinger
Apple's WebObjects is still the best web framework I've come across, but it's commercial ($699) and not open source. It's disappointing that the OSS community hasn't produced anything as elegant or powerful. The two best open source web frameworks I've come across are Tapestry and Wicket (both Apache projects). Like WebObjects, they're both component-based, and unlike JSF, reasonably well-architected and easy to get started with. If you're open to trying something more esoteric, you could also learn Scala and try Lift, but it's pretty new, and so still not something most developers are ready to use in production applications (yet). -
Slight correction ...[ Go to top ]
- Posted by: Ashley Aitken
- Posted on: October 26 2007 07:58 EDT
- in response to Bruce Fancher
Apple's WebObjects is still the best web framework I've come across, but it's commercial ($699) and not open source.
I think you will find that WebObjects is now free (and has been for some time). The recommended development environment is now one of the popular Java IDEs (e.g. Eclipse) with a couple of open-source tools to assist (with setting up the OR map and configuring Web pages). Cheers, Ashley. -
Grails![ Go to top ]
- Posted by: Time PassX
- Posted on: October 25 2007 14:28 EDT
- in response to Joseph Ottinger
I vote for Grails. It's action-based, but very easy to create tags that can have their own 'controller' and 'view'. All of the view templates can be written as plain XML/ HTML etc. There is _no_ XML configuration and URL mapping is done through a simple configuration mechanism. It is easy to get up an running without hiding too much of the environment from the user. -
Re: Grails![ Go to top ]
- Posted by: artful dodger
- Posted on: October 26 2007 12:21 EDT
- in response to Time PassX
A show of hands of people that have used a light framework with an awesome javascript library like jQuery. A show of hands of people that after using the light framework with jQuery would go back to JSF. -
I like pink bunnies![ Go to top ]
- Posted by: Jesse Kuhnert
- Posted on: October 25 2007 14:49 EDT
- in response to Joseph Ottinger
Try them. Sometimes broccoli is nice too. -
Clearly...[ Go to top ]
- Posted by: michael campbell
- Posted on: October 25 2007 18:22 EDT
- in response to Joseph Ottinger
...the winner is emacs. and_open_braces_go_here() => { { <== not here 2, or 4 spaces for indentation are better than 5 (or 8, god forbid), but ANY number is better than tabs. And of course, camelCasingIsForPansyPascalJunkiesAndDotNetGoobs. What'd I miss? -
One vote for Struts 2[ Go to top ]
- Posted by: Crawford Holden
- Posted on: October 26 2007 13:55 EDT
- in response to Joseph Ottinger
I've used both JSF and Struts 2 quite a bit. JSF: Plenty of special IDEs and control libraries to choose from. Although, I found it very hard to get these tools to do what I wanted them to do and ended up coding most functionality from scratch. I really had a bad experience with JSF. If you don't mind working in the Microsoft universe, ASP.NET is a much better framework for this type of novice-friendly component-rich development. Struts 2: Very simple, elegant, and flexible. If you are comfortable with raw HTML/JS/CSS, and tend to dislike "heavy" tools and frameworks that get in the way, this is for you. This works really well with client-side GUI libraries (Scriptaculous, Yui, etc). Very much designed around test-driven development. I love it and feel very productive with it so far. GWT: I have limited experimental use with this, but I wanted to point out that this is for a really different type of app. GWT is more of an RIA framework along the lines of Flash, Flex, Silverlight, JavaFX, while Struts and JSF are for more traditional web development and compete with PHP, Rails, and ASP.NET. -
Tapestry 5[ Go to top ]
- Posted by: Craig Margenau
- Posted on: October 26 2007 22:22 EDT
- in response to Joseph Ottinger
I've been evaluating the latest frameworks to use on an upcoming project. I've looked at Spring MVC, Seam, Stripes, Struts 2, Wicket, and finally Tapestry 5. I'm currently in the process of building a prototype with Tapestry 5 and I gotta say I'm impressed. It's basically a better Wicket...more reliance on annotations and great IoC support. No base classes to extend, all PoJo and clean separation of UI. -
Re: Tapestry 5[ Go to top ]
- Posted by: Maris Orbidans
- Posted on: October 27 2007 08:39 EDT
- in response to Craig Margenau
Tapestry 5. It's basically a better Wicket...
Are you sure it's better than wicket? We have switched from JSF to Wicket. We didn't evaluate Tapestry... I have heard it's quite complex. -
Re: Tapestry 5[ Go to top ]
- Posted by: Craig Margenau
- Posted on: October 28 2007 06:35 EDT
- in response to Maris Orbidans
I too thought that the previous versions of Tapestry were overly complex, but Tapestry 5 has been rewritten from the ground up and is not even trying to be compatible with the previous versions. It's clean, simple, elegant and powerful...clearly a step in the right direction. http://tapestry.apache.org/tapestry5/ -
Re: Tapestry 5[ Go to top ]
- Posted by: Eelco Hillenius
- Posted on: October 31 2007 13:34 EDT
- in response to Maris Orbidans
Nah it's not (but as a Wicket developer, I'm biased). Tapestry 5's Ajax support still isn't great and Wicket is way more dynamic. The only thing imho you might like better about Tapestry 5 is that you can get away with writing less code.Tapestry 5. It's basically a better Wicket...
Are you sure it's better than wicket? We have switched from JSF to Wicket. We didn't evaluate Tapestry... I have heard it's quite complex. -
Re: Tapestry 5[ Go to top ]
- Posted by: Eelco Hillenius
- Posted on: October 31 2007 13:56 EDT
- in response to Craig Margenau
I've been evaluating the latest frameworks to use on an upcoming project. I've looked at Spring MVC, Seam, Stripes, Struts 2, Wicket, and finally Tapestry 5.
I don't mind anyone liking Tapestry 5 better than Wicket. But I don't agree with the arguments you give here. Why is 'more relience on annotations' a good thing? I disagree. And I'm sure Tapestry 5 has great IoC support, but Wicket has that as well. In fact, IoC is supported in a general fashion, so you can plug in Spring or Guice (both already available) or whatever lib you like. Clean separation of UI is something both frameworks support and in fact Wicket is a bit more zealous in that separation (which you may or may not like). Using base classes (but not required abstract base classes like Tapestry had before!) instead of interfaces actually makes sense sometimes. With base classes, you have finer control over what you expose how and you can better guarantee contracts. Even those base classes are 'pojos'. Furthermore, Wicket only requires components to extend base classes (and for good reasons). Most other things are based on interfaces, including behaviors, which are Wicket's way to support object composition.
I'm currently in the process of building a prototype with Tapestry 5 and I gotta say I'm impressed. It's basically a better Wicket...more reliance on annotations and great IoC support. No base classes to extend, all PoJo and clean separation of UI. -
Forget XML-frameworks[ Go to top ]
- Posted by: Joonas Lehtinen
- Posted on: October 27 2007 11:28 EDT
- in response to Joseph Ottinger
Instead you should consider a framework where UI:s are developed in Java. Currently available options are: GWT, IT Mill Toolkit 4, Echo2 and Thinwire. Upcoming IT Mill Toolkit 5 will combine the best of server-side and client-side Java UI development: http://forum.itmill.com/posts/list/318.page -
Re: Forget XML-frameworks[ Go to top ]
- Posted by: Eelco Hillenius
- Posted on: October 31 2007 14:00 EDT
- in response to Joonas Lehtinen
Instead you should consider a framework where UI:s are developed in Java. Currently available options are: GWT, IT Mill Toolkit 4, Echo2 and Thinwire.
With Wicket, the only thing you don't do in Java is layout management (for which you use plain HTML and CSS). Layout management in Java can be both convenient (if you're UI requirements are modest) or a PITA (when you're deviating from the mean). -
Layout management[ Go to top ]
- Posted by: Joonas Lehtinen
- Posted on: November 02 2007 08:33 EDT
- in response to Eelco Hillenius
For layouts, both declarative (in HTML) as well as programmed layouts should be supported and mixable. This allows you to use the best tools for all situations. -
struts and components[ Go to top ]
- Posted by: Arron Bates
- Posted on: October 27 2007 22:22 EDT
- in response to Joseph Ottinger
what I find a little funny is people saying Struts is all action based. Fact is, you can do component based development with Struts... well, if you use the nested tag library. But only a few people were open minded enough to listen to me back in the day (oh well, the world's loss) ...but with the nested tags, you really can separate out complete components, and hook them all up on the server. Include them in a component fashion in the UI, and it's all married back for you through the tag library itself. Very usable. Some people have used it for this very ability to manage very large object structures (including true recursion)... but "popular" was not a term you could pin on the nested tags (and I sleep at night knowing that just because it wasn't popular, didn't mean it wasn't a wickedly productive way to do things :) Also, the nested tags boiled down the tags to a much simpler form. Just ask the people that did "get" the nested tags mojo if they like developing with Struts in a component fashion, they are out there. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: Artur Karazniewicz
- Posted on: October 28 2007 09:39 EDT
- in response to Joseph Ottinger
I, for one, before have started using WebWork had longterm experience with plethora Java frameworks including classic Struts 1, few implementations of JSF including ADF, Spring MVC, Stripes etc. Starting to work with WebWork 2 was like enlightenment. All, simply all problems I had with those farmeworks were solved here, in lightweight, elegant way. Simply one of the best piece of software I've ever seen. I'm amazed how simple, elegant and powerful WW is. Never ever look back. Speaking about JSF and other "controls" oriented frameworks like ASP.NET. I cannot understand who actually is using it for real life projects, except most simple ones? Unless You are using standard functionality (which is in most cases, especially in JSF, is just rudimentary) be prepared for hard work. Want something different from "standard behavior"? Want to integrate two frameworks? Welcome to hell ;). -
The view of the competitivity[ Go to top ]
- Posted by: Sebastien Marc
- Posted on: October 30 2007 11:01 EDT
- in response to Joseph Ottinger
A good framework is one that is cheap to use over the short, medium, and long term. As private companies are now evolving in a global and extremly competitive world, developers will save their jobs by adopting cost efficient frameworks around these 3 horizons. Short term: The upfront learning cost of a good framework must be as cheap as possible. This means should require the smallest footprint in terms of time to be efficient to start delivering web applications on top of it. Medium term: A good framework will have to be extensible. New pages can be designed at low cost. New widgets can be integrated cheaply (time and money wise). Long term: This is the most difficult to achieve: Applications designed with a good framework must be maintainable. MVC is one way of achieving this but it so easily wrongly implemented. The language plays a significant role here. The ability to find developers on the technology as well. In the proprietary world, my personal intuition is that ASP.NET is emerging as a winner. In the free world, the picture is more complex. Taking the long term horizon, it seems a Java-based framework is a good candidate. Ruby on Rails developers are not widely available globally yet for example. So it seems that we are looking at a Java based framework. Taking the short term horizon, it seems that J2EE based frameworks are too costly. A core java developer needs weeks to understands the way HTTP, servlets, tag libs, EJBs and the like. I place JSF in this category. Structs is in the same line: It takes time(=money) to learn it. Spring is a step in the right direction, but its MVC implementation is only alleviating the pain. Let me share some thoughts from an other angle: A company can take a young software engineer right out of school and start building rich gui applications (with frameworks like swing or swt). Why cannot we figure out a way to develop a web application using the same simplicity ?. Answers to this question are starting to emerge in the java free world: - Tapestry, Wicket, GWT, RAP an others. In my opinion, none of them do answer the medium term horizon: They lack real extensibility. Who will win ? Tought to say. I start to have a significant experience with GWT. Out of the box, it lacks professional looking controls. GWT-Ext is a beginning of answer, but this is still way too cutting-edge for a conservative company. I don't think there is a clean winner yet, but the winner will be the one adopting a GWT like approach with a choice of javascript/ajax controls wide enough to build very professional and dynamic applications as we can do with Swing or SWT. My 2 cents, Sebastien Marc. -
I vote for ZK[ Go to top ]
- Posted by: JILL Zagat
- Posted on: October 31 2007 00:55 EDT
- in response to Joseph Ottinger
Best server-centric RIA solutions I found so far. If you know how to develop event-driven application, you'll find it very easy to use. Great support, too. -
Re: Differences between Struts and JSF?[ Go to top ]
- Posted by: rs ramaswamy
- Posted on: November 24 2007 08:56 EST
- in response to Joseph Ottinger
I think my tutorials on Struts and JSF for beginners answers this question. Kindly visit: http://in.geocities.com/rsramsam/struts1.htm and http://in.geocities.com/rsramsam/jsf1.htm RSR -
If you are keeping alert of any[ Go to top ]
- Posted by: Paul Web
- Posted on: October 03 2011 21:36 EDT
- in response to Joseph Ottinger
If you are keeping alert of any technical news this article on JAM may interest you. It is a tool kit for testing Java/J2EE applications. I think there are many applications in the software market. I am keen on checking out dedicated server hosting plans for my upcoming website. I believe there is a fierce competition going on among web hosting companies to offer the best service. I am sure there are many web hosts in UK and USA that can offer a reliable service.
Paul - http://www.connetu.com