I looked for libraries for implementing ajax-enabled functionality into a project in java and tried to compose a comparative description. maybe someone will be interested. The main emphasis was placed on the fact that the project was originally written using Struts.
maybe the format is not very suitable, but what is there. opinion is subjective.
JSF (Java Server Faces)
the main goal
Improve the development of web applications and simplify the creation of "heavy" applications with an extensive user interface.
Demands serious coding on JS?
None when using standard components and implementations (there are implementations that natively support ajax).
Virtues
Unifies the process of creating components;
Simplifies component reuse;
Well defined development process;
Integrated into visual development tools
disadvantages
Requires learning and refactoring of the web layer;
Risk
For applications implemented on Struts, it requires processing the web layer;
Comments
JSF is a modern solution for complex web applications. Component-oriented. JSF contains its own development process (cycle), which helps to clearly define the roles of developers in a project. There are several visual development environments (IDEA, NetBeans, Sun Java Studio Creator 2) that help build an application using JSF.
Dojo
Compatible with Struts? | Yes (does not depend on the server part) |
Server side? | NOT |
Oriented to the component model? | NOT |
What will affect the use of the solution | Js functionality |
Link | dojotoolkit.org/demos |
the main goal
Splits shared js code, makes it easy to add widgets.
Demands serious coding on JS?
YES
Virtues
Does not affect the server part
disadvantages
Requires additional coding for calling business methods from the client side
Comments
Looks like more design oriented (appearance / animation).
')
jMaki
the main goal
Aggregates components written using different libraries;
integrates them in j2ee environment
Demands serious coding on JS?
YES
Virtues
Unifies the process of creating components
disadvantages
Requires additional coding for calling business methods from the client side
Comments
The library allows you to integrate existing components.
Google web toolkit
the main goal
Allows you to implement web applications as if it were a Swing-based solution;
Demands serious coding on JS?
NO (seriously, no need to write js code at all!)
Virtues
Allows you to implement web applications as if it were a Swing-based solution;
Easy to debug
disadvantages
Converts pages to uneditable code.
Risk
It is difficult to change the design of the pages;
Not compatible with Struts;
Comments
An interesting solution that allows you to implement components and business logic entirely in java, without js.
DWR
Compatible with Struts? | YES |
Server side? | YES |
Oriented to the component model? | NOT |
Link | getahead.org/dwr |
the main goal
Allows you to call business methods from a client. Based on JS RPC.
Demands serious coding on JS?
YES
Virtues
Easily invoke business methods from the client side;
Easy to use
Comments
DWR is RPC (remote procedure calling is a remote procedure call like RMI, for example). It implements only what is required of it - it simplifies the exchange of messages between the client and the server.
Ajaxtags
Compatible with Struts? | YES |
Server side? | YES |
Oriented to the component model? | No, the solution is based on JSP tags, which the component model of development does not initially support, however, the solution is rather elegant and well integrated into JSP. |
What will affect the use of the solution | UI Component Development Approach |
Link | ajaxtags.sourceforge.net |
the main goal
Allows you to embed ajax-enabled solutions in a JSP-based application.
Demands serious coding on JS?
WELL NO. The main task of the library is to reduce the amount of JS code. However, in fact, it requires JS coding for customization.
Virtues
Easily applicable to Struts-based applications;
ZK
Compatible with Struts? | NOT |
Server side? | YES |
Oriented to the component model? | YES |
Link | www.zkoss.org |
the main goal
Provides a unified model writing component-oriented RIA (rich internet application)
Demands serious coding on JS?
NO, however, JS is replaced by another language.
Virtues
Awesome community;
Well documented;
It has a set of useful components;
disadvantages
Requires learning and refactoring of the web layer;
Risk
Not compatible with Struts
Comments
It looks pretty good, but still not standard. Demands transition to absolutely new approach in development.
Struts shale
the main goal
Allows you to simplify the process of migrating Struts-applications on JSF
Demands serious coding on JS?
NO, generally (using standard implementations)
Virtues
Designed to easily migrate Struts-based applications to JSF;
Unifies the process of creating components;
Simplifies component reuse;
Well defined development process;
Integrated into visual development tools
disadvantages
Requires learning and refactoring of the web layer;
Risk
Recycle web layer required;
Comments
It looks good for developing Struts-based applications, during which the team faced an increase in user interface complexity. Allows you to reduce the risk of immigration to JSF.
Additional resources:
TD_GEN_Web2.0_AJAX.pdf