Java + Struts + Ajax (Библиотеки)

Я искал библиотеки для внедрения в java-проект функционала с поддержкой ajax и попытался сделать сравнительное описание.

возможно, кому-то будет интересно.

Основной упор был сделан на то, что проект изначально был написан с использованием Struts. Может формат не очень подходит, но какой есть.

мнение субъективно.



JSF (лица Java-сервера)

Совместимо со Struts? НЕТ
Серверная часть? ДА
Ориентирована на компонентную модель? ДА
Связь java.sun.com/javaee/javaserverfaces/ajax/index.jsp


Главная цель

Улучшите разработку веб-приложений и упростите создание «тяжелых» приложений с помощью обширного пользовательского интерфейса.



Требуется тяжелое кодирование JS?

Нет, если вы используете стандартные компоненты и реализации (есть реализации, которые изначально поддерживают ajax).



Преимущества

Унифицирует процесс создания компонентов; Упрощает повторное использование компонентов; Четко определенный процесс разработки; Интегрирован в инструменты визуальной разработки.



Недостатки

Требует обучения и рефакторинга веб-слоя;

Риск

Приложения, реализованные на Struts, требуют переделки веб-слоя;

Комментарии

JSF — современное решение для сложных веб-приложений.

Компонентно-ориентированный.

JSF содержит собственный процесс разработки (цикл), который помогает четко определить роли разработчиков в проекте.

Существует несколько сред визуальной разработки (IDEA, NetBeans, Sun Java Studio Creator 2), которые помогают создавать приложения с использованием JSF.

Додзё

Совместимо со Струтсом? Да (не зависит от серверной части)
Серверная часть? НЕТ
Ориентирована на компонентную модель? НЕТ
Каков будет эффект от использования решения? JS-функциональность
Связь dojotoolkit.org/demos


Главная цель

Общий код JS, упрощает добавление виджетов.



Требуется тяжелое кодирование JS?

ДА

Преимущества

Не влияет на серверную часть

Недостатки

Требуется дополнительное кодирование для вызова бизнес-методов со стороны клиента.



Комментарии

Похоже, он больше ориентирован на дизайн (внешний вид/анимацию).



jMaki

Совместимо со Струтсом? ДА
Серверная часть? ДА
Ориентирована на компонентную модель? ДА
Связь ajax.dev.java.net/jmaki-screenshots.html


Главная цель

Агрегирует компоненты, написанные с использованием различных библиотек; интегрирует их в среду j2ee

Требуется тяжелое кодирование JS?

ДА

Преимущества

Унифицирует процесс создания компонентов

Недостатки

Требуется дополнительное кодирование для вызова бизнес-методов со стороны клиента.



Комментарии

Библиотека позволяет интегрировать существующие компоненты.



Веб-инструментарий Google

Совместимо со Struts? НЕТ
Серверная часть? ДА
Ориентирована на компонентную модель? ДА
Связь code.google.com/webtoolkit


Главная цель

Позволяет реализовывать веб-приложения так, как если бы это было решение на основе Swing;

Требуется тяжелое кодирование JS?

НЕТ (серьезно, вообще не нужно писать js-код!)

Преимущества

Позволяет реализовывать веб-приложения так, как если бы это было решение на основе Swing; Легко отлаживать

Недостатки

Преобразует страницы в нередактируемый код

Риск

Сложно изменить внешний дизайн страниц; Несовместимо со Struts;

Комментарии

Интересное решение, позволяющее реализовать компоненты и бизнес-логику полностью на Java, без js.

ДВР

Совместимо со Струтсом? ДА
Серверная часть? ДА
Ориентирована на компонентную модель? НЕТ
Связь getahead.org/dwr


Главная цель

Позволяет вызывать бизнес-методы из клиента.

На основе JS RPC.

Требуется тяжелое кодирование JS?

ДА

Преимущества

Бизнес-методы легко вызывать со стороны клиента; Легко использовать

Комментарии

DWR — это RPC (удаленный вызов процедур, например, RMI).

Он реализует только то, что от него требуется — упрощает обмен сообщениями между клиентом и сервером.



AjaxTags

Совместимо со Struts? ДА
Серверная часть? ДА
Ориентирована на компонентную модель? Нет, решение основано на тегах JSP, которые изначально не поддерживают модель разработки компонентов, однако решение довольно элегантное и хорошо интегрируется в JSP.
Каков будет эффект от использования решения? Подход к разработке UI-компонентов
Связь ajaxtags.sourceforge.net


Главная цель

Позволяет реализовать решения с поддержкой ajax в приложении на основе JSP.

Требуется тяжелое кодирование JS?

НЕ СОВСЕМ.

Основная цель библиотеки — уменьшить объём JS-кода.

Однако на самом деле для настройки требуется кодирование JS.

Преимущества

Легко применимо к приложениям на основе Struts;

ЗК

Совместимо со Struts? НЕТ
Серверная часть? ДА
Ориентирована на компонентную модель? ДА
Связь www.zkoss.org


Главная цель

Предоставляет унифицированную модель для написания компонентно-ориентированных RIA (многофункциональных интернет-приложений).



Требуется тяжелое кодирование JS?

НЕТ, однако JS был заменен другим языком.



Преимущества

Впечатляющее сообщество; Хорошо документированы; Имеет набор полезных компонентов;

Недостатки

Требует обучения и рефакторинга веб-слоя;

Риск

Не совместим со Struts.

Комментарии

Выглядит неплохо, но все же не стандартно.

Требуется переход к совершенно новому подходу к развитию.



Струтс Шейл

Совместимо со Struts? ДА
Серверная часть? ДА
Ориентирована на компонентную модель? ДА
Связь www4.java.no/javazone/2005/presentasjoner/KitoMann/MigratingfromStrutstoJSF-60Minutes.pdf


Главная цель

Позволяет упростить процесс миграции приложения Struts на JSF.

Требуется тяжелое кодирование JS?

НЕТ, вообще (с использованием стандартных реализаций)

Преимущества

Создан для простой миграции приложений на основе Struts в JSF; Унифицирует процесс создания компонентов; Упрощает повторное использование компонентов; Четко определенный процесс разработки; Интегрирован в инструменты визуальной разработки.



Недостатки

Требует обучения и рефакторинга веб-слоя;

Риск

Веб-слой необходимо переработать;

Комментарии

Хорошо выглядит для разработки приложений на базе Struts, в ходе которой команда столкнулась с возрастающей сложностью пользовательского интерфейса.

Позволяет снизить риск перехода на JSF.

Дополнительные ресурсы:

TD_GEN_Web2.0_AJAX.pdf Теги: #java #struts #Ajax #jsf #dojo #zk #jMaki #gwt #Google Web Toolkit #DW #Ajax
Вместе с данным постом часто просматривают: