views:

283

answers:

7

Hi,

I am intermediate Java developer, but have not written programs using a framework.

I like server-side development, but am confused with which framework I should learn.

What would you suggest?

Thank you!

+9  A: 

The Spring Framework has good documentation, is widely used, comprehensive (web, J2EE, AOP, etc), and you can use it as a base for other frameworks. It provides ample opportunity to learn (from beginner to advanced issues).

I hope it helps.

Aito
+6  A: 

You should check out Play Framework. Really nice framework

code-zoop
+1, yes very nice - just enjoyed the screencast and downloaded the framework right afterwards to start playing :)
Andreas_D
Just watched the screencast - Looks cool. How mature is it?
Adamski
Humm.. its very similiar to springs roo, or?
codedevour
A: 

It depends on your requirements.

If you need to do web programming, I think Spring is a good one.

Upul
+1  A: 

Spring

stacker
+2  A: 

Frameworks Some of the more popular frameworks that top of the list of my framework alternatives are:

  • Struts is almost the de facto standard for J2EE projects. Struts is an elegant framework that handles the flow of the application and a lot of other routine tasks. Another advantage of using Struts is the ever-growing number of people skilled in using Struts. Many of the popular Java IDEs also provide tools for Struts development, making life even easier for the developer.
  • Cocoon is great if you are looking for a framework that has XML capabilities at its core and that makes great use of XML and XSLT. Unlike other frameworks that provide extensions to the core framework that enable XML and XSL usage, XML and XSL are the core of the Cocoon framework.
  • WebWork is part of the OpenSymphony set of components and is considered to be a nice and simple framework. WebWork also has some momentum going for it lately, so it is certainly a framework that needs to be considered.

While many frameworks provide their own tags that can make it easier to use the framework, I do feel that the best option is to stick with JSPs that use the JSP Standard Tag Libraries (JSTL). The other options don’t offer enough flexibility and JSTL—being a standard—will have more widespread acceptance. Java Server Faces is another interesting development that needs to be explored. Although it won’t replace the frameworks, it should change the way developers use custom tags.

Best option..... The Model View Controller pattern-based Java frameworks hold a lot of potential to make the developer’s life easier, their development time faster, and their application more maintainable. So the time invested in deciding on the framework to use will be well spent. But ease of use, strong user community, tool support, and widespread acceptance makes Struts the best option as of today.

ratty
Struts 1 is a blight upon the land, and offers pretty much zero value. Avoid it like the plague. Struts 2 is effectively WebWork, the downside is that if you google "Struts", you get 10 year old obsolete garbage referring to Struts 1 (note first comment). Other than that, Struts 2 is pretty good. However, Stripes is better (IMHO), and easier since it was a ground up creation vs something trying to be compatible with an older project (notably Struts 1, note first comment.) Stripes is just easy to get up and going out of the box.
Will Hartung
A: 

Personally, I would look at one of the following

  • Spring: Very popular open source JEE framework. Jack of all trades, does everything from IOC to dealing with JMS and JDBC. Very versatile and a very employable skill

  • GRAILS: A Ruby on Rails'esque framework but for the JVM. LEarn to build advanced web applications using Groovy. Also Grifton framework based on Grails for Swing based applications

  • JEE6: the latest version of the Enterprise Spec is out soon, why not try the latest version of GassFish to try out all the really excellent new features

  • OSGi: Allows modularity in the JVM, multiple versions of jars and dynamic services

Diarmuid
+1  A: 

I'm surprised no one has mentioned Stripes yet, although it is not as widely used as struts, it is certainly very easy to pickup, and once you master it I'm sure a transition to struts or some other MVC would be easy

Stripes relies on convention rather than configuration, meaning you need less XML config files

Of course you can integrate it with the rest of your stack, Spring, Hibernate, JSPs or freemarker etc

There is a comparison on Stripes V Struts here

When I first started playing with Stripes I wrote up a little hello world tutorial, I hope it may be of some help to you

Good luck!

James.Elsey