📜 ⬆️ ⬇️

Java + Struts + AJAX (libraries)

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)


Compatible with Struts?NOT
Server side?YES
Oriented to the component model?YES
Linkjava.sun.com/javaee/javaserverfaces/ajax/index.jsp

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 solutionJs functionality
Linkdojotoolkit.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


Compatible with Struts?YES
Server side?YES
Oriented to the component model?YES
Linkajax.dev.java.net/jmaki-screenshots.html

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


Compatible with Struts?NOT
Server side?YES
Oriented to the component model?YES
Linkcode.google.com/webtoolkit

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
Linkgetahead.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 solutionUI Component Development Approach
Linkajaxtags.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
Linkwww.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


Compatible with Struts?YES
Server side?YES
Oriented to the component model?YES
Linkwww4.java.no/javazone/2005/presentasjoner/KitoMann/MigratingfromStrutstoJSF-60Minutes.pdf

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

Source: https://habr.com/ru/post/7685/


All Articles