I have a requirement for a simple web application. Need to query data (with search criteria entered in page) and display results. Hierarchical navigation may be required from one record to related record in another table. Exporting/Charting of data might be required in future.
I need suggestions from you on the java framework combinations to use especially on the UI side (like JSF or Struts 2).Your suggestions are highly appreciated.
We already use the following technologies in our projects (looking to leverage them): Geronimo server, EJB 3.0 and JPA.
You're not providing a lot of details to really pick one framework over another. There are basically two "major" framework types these days. The first, probably the majority are MVC style.. with struts 2, spring MVC and some others fitting in that camp. The other side are JSF, JavaFX, and Wicket. To me, the main plus to using struts2, spring MVC and such is there is a lot of documentation, examples, forum help, etc and that they are relatively easy to configure and get going in minutes. On the other hand, they are more difficult to maintain especially those that embed lots of scriptlet/tags inside of JSP pages or the likes. I am not too knowledgeable with JavaFX but I think it's similar to wicket and JSF with the approach of a modular design, swing-like event system (be it traditional form submits or ajax requests between components), and server-side document model of the page/components per user. The latter frameworks have a steeper learning curve, but offer potentially better maintainability and more flexibility than the first group. Wicket for example is very nice in that the web page itself is an actual HTML page that can be designed/tested by any web html/css expert. As a team, you'd indicate special wicket ids to use where dynamic content would go, but wicket also allows you to put in "runtime replaced" test content so that the designer can mock up the page with content that allows the page to be visually correct, but when deployed, it's replaced with the dynamic data from the server side. It's also very modular in that you can build components and reuse them very easily on many pages.
I might be off a little bit, I am sure there are other great frameworks, like Play and GWT and so forth.
If you want something quick to prototype and then can build on, I'd probably go Struts 2. If you have some time to learn and want it more maintainable, Wicket would be my pick.