Java + Struts + AJAX (libraries)
I looked for libraries for embedding ajax-enabled functionality in a java project and tried to make a comparative description. maybe someone will be interested. The main emphasis was on the fact that the project was originally written using Struts.
maybe the format is not very suitable, but what is already there. opinion is subjective.
Improve web application development and simplify the creation of "heavy" applications with a branched user interface.
No, in the case of using standard components and implementations (there are implementations that initially support ajax).
Unifies the process of creating components;
Simplifies reuse of components;
Clearly defined development process;
Integrated in visual development tools
Requires training and refactoring of the web layer;
For applications implemented on Struts requires processing the web layer;
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 the project. There are several visual development environments (IDEA, NetBeans, Sun Java Studio Creator 2) that help build your application using JSF.
Separates common js code, simplifies adding widgets.
YES
Does not affect the server side
Requires additional coding for calling business methods from the client side
It looks more focused on design (appearance / animation).
Aggregates components written using various libraries;
integrates them into j2ee environment
YES
Unifies component creation process
Requires additional coding for calling business methods from the client side
The library allows you to integrate existing components.
Allows you to implement web applications, as if it is a Swing-based solution;
NO (seriously, there is no need to write js code at all!)
Allows you to implement web applications, as if it is a Swing-based solution;
Easy to debug
Converts pages to uneditable code
It is difficult to change the external design of pages;
Not compatible with Struts;
An interesting solution that allows you to implement components and business logic completely in java, without js.
Allows calling business methods from a client. Based on JS RPC.
YES
Easy to call business methods from the client side;
Easy to use
DWR is RPC (remote procedure calling - 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.
Allows embedding ajax-enabled solutions in a JSP-based application.
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.
Easily applicable to Struts-based applications;
Provides a uniform model for writing component-oriented RIA (rich internet application)
NO, however JS is replaced with a different language.
Awesome community;
Well documented;
Has a set of useful components;
Requires training and refactoring of the web layer;
Not compatible with Struts
It looks pretty good, but still not standard. It requires a transition to a completely new approach in development.
Simplifies the process of migrating a Struts application to JSF
NO, in general (when using standard implementations)
Designed to easily migrate Struts-based applications to JSF;
Unifies the process of creating components;
Simplifies reuse of components;
Clearly defined development process;
Integrated in visual development tools
Requires training and refactoring of the web layer;
Recycling of the web layer is required;
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 migrating to JSF.
TD_GEN_Web2.0_AJAX.pdf
maybe the format is not very suitable, but what is already there. opinion is subjective.
JSF (Java Server Faces)
Compatible with Struts? | NOT |
Server side | YES |
Focused on the component model? | YES |
Link | java.sun.com/javaee/javaserverfaces/ajax/index.jsp |
the main goal
Improve web application development and simplify the creation of "heavy" applications with a branched user interface.
Requires serious coding in JS?
No, in the case of using standard components and implementations (there are implementations that initially support ajax).
Advantages
Unifies the process of creating components;
Simplifies reuse of components;
Clearly defined development process;
Integrated in visual development tools
disadvantages
Requires training and refactoring of the web layer;
Risk
For applications implemented on Struts 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 the project. There are several visual development environments (IDEA, NetBeans, Sun Java Studio Creator 2) that help build your application using JSF.
Dojo
Compatible with Struts? | Yes (does not depend on the server side) |
Server side | NOT |
Focused on the component model? | NOT |
What will affect the use of the solution | JS functionality |
Link | dojotoolkit.org/demos |
the main goal
Separates common js code, simplifies adding widgets.
Requires serious coding in JS?
YES
Advantages
Does not affect the server side
disadvantages
Requires additional coding for calling business methods from the client side
Comments
It looks more focused on design (appearance / animation).
jMaki
Compatible with Struts? | YES |
Server side | YES |
Focused on the component model? | YES |
Link | ajax.dev.java.net/jmaki-screenshots.html |
the main goal
Aggregates components written using various libraries;
integrates them into j2ee environment
Requires serious coding in JS?
YES
Advantages
Unifies component creation process
disadvantages
Requires additional coding for calling business methods from the client side
Comments
The library allows you to integrate existing components.
Google web toolkit
Compatible with Struts? | NOT |
Server side | YES |
Focused on the component model? | YES |
Link | code.google.com/webtoolkit |
the main goal
Allows you to implement web applications, as if it is a Swing-based solution;
Requires serious coding in JS?
NO (seriously, there is no need to write js code at all!)
Advantages
Allows you to implement web applications, as if it is a Swing-based solution;
Easy to debug
disadvantages
Converts pages to uneditable code
Risk
It is difficult to change the external design of pages;
Not compatible with Struts;
Comments
An interesting solution that allows you to implement components and business logic completely in java, without js.
DWR
Compatible with Struts? | YES |
Server side | YES |
Focused on the component model? | NOT |
Link | getahead.org/dwr |
the main goal
Allows calling business methods from a client. Based on JS RPC.
Requires serious coding in JS?
YES
Advantages
Easy to call business methods from the client side;
Easy to use
Comments
DWR is RPC (remote procedure calling - 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 |
Focused on the component model? | No, the solution is based on JSP tags, which initially do not support the component development model, however, the solution is quite elegant and integrates well into the JSP. |
What will affect the use of the solution | UI Component Development Approach |
Link | ajaxtags.sourceforge.net |
the main goal
Allows embedding ajax-enabled solutions in a JSP-based application.
Requires serious coding in 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.
Advantages
Easily applicable to Struts-based applications;
Zk
Compatible with Struts? | NOT |
Server side | YES |
Focused on the component model? | YES |
Link | www.zkoss.org |
the main goal
Provides a uniform model for writing component-oriented RIA (rich internet application)
Requires serious coding in JS?
NO, however JS is replaced with a different language.
Advantages
Awesome community;
Well documented;
Has a set of useful components;
disadvantages
Requires training and refactoring of the web layer;
Risk
Not compatible with Struts
Comments
It looks pretty good, but still not standard. It requires a transition to a completely new approach in development.
Struts shale
Compatible with Struts? | YES |
Server side | YES |
Focused on the component model? | YES |
Link | www4.java.no/javazone/2005/presentasjoner/KitoMann/MigratingfromStrutstoJSF-60Minutes.pdf |
the main goal
Simplifies the process of migrating a Struts application to JSF
Requires serious coding in JS?
NO, in general (when using standard implementations)
Advantages
Designed to easily migrate Struts-based applications to JSF;
Unifies the process of creating components;
Simplifies reuse of components;
Clearly defined development process;
Integrated in visual development tools
disadvantages
Requires training and refactoring of the web layer;
Risk
Recycling of the web layer is 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 migrating to JSF.
Additional resources:
TD_GEN_Web2.0_AJAX.pdf