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.

    JSF (Java Server Faces)


    Compatible with Struts?NOT
    Server sideYES
    Focused on the component model?YES
    Linkjava.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 sideNOT
    Focused on the component model?NOT
    What will affect the use of the solutionJS functionality
    Linkdojotoolkit.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 sideYES
    Focused on the component model?YES
    Linkajax.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 sideYES
    Focused on the component model?YES
    Linkcode.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 sideYES
    Focused on the component model?NOT
    Linkgetahead.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 sideYES
    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 solutionUI Component Development Approach
    Linkajaxtags.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 sideYES
    Focused on the component model?YES
    Linkwww.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 sideYES
    Focused on the component model?YES
    Linkwww4.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

    Also popular now: