Какой веб-фреймворк Java является хорошим выбором для веб-приложения с повторно используемым контентом / поведением? - PullRequest
2 голосов
/ 29 марта 2010

Я пришел из .NET фона и мне нужно сделать веб-проект на Java. Я немного читал о различных веб-фреймворках Java: JSF, Stripes, Wicket, Tapestry и т. Д.

Но я хотел бы услышать от людей, имеющих реальный опыт работы с этими системами.

Конечно, я хочу, чтобы фреймворк был современным, поддерживает AJAX, крут и так далее, но один из моих главных критериев - это возможность каким-то образом создавать повторно используемые компоненты / теги. Заказчик должен иметь возможность перемещать метки / компоненты без особых проблем, чтобы настроить его для своих конкретных потребностей.

В ASP.NET Webforms я использовал бы для этого пользовательские элементы управления и пользовательские элементы управления, а в ASP.NET MVC я использовал бы элементы управления пользователя, а также самодельные пользовательские элементы управления. Так в чем же Java-фреймворки?

Мое собственное поверхностное исследование, похоже, пришло к выводу, что JSF поддерживает какие-то пользовательские элементы управления (имейте в виду, что я говорю не только о повторном использовании макета, но и о повторном использовании поведения, поэтому, например, если клиент / клиент хочет получить список клиентов на странице x и не только на странице Y, он просто вставил бы <jr:CustomerList runat="server" .... /> (вымышленный пример с синтаксисом веб-форм ASP.NET)).

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

Я рекомендую Гобелен .

Примеры на Jumpstart (см. «Создание компонентов»). Если вы не можете добраться до порта 8080, домашняя страница - здесь .

Компоненты и страницы Tapestry состоят из файла XHTML и исходного файла Java (например, CustomerList.java и CustomerList.tml). Компонент является автономным и может делать практически все, что может делать страница. Затем вы добавляете свой компонент в HTML своих страниц следующим образом: <t:CustomerList />.

Вы также можете определить свои собственные аргументы, например

<t:CustomerList myCustomers="accountsPayable" ... />.

На мой взгляд, это более элегантное решение, чем JSF, и я думаю, что контейнер IoC Tapestry делает его более мощным, чем Wicket. Мы используем Tapestry для интрасети с несколькими тысячами пользователей.

1 голос
/ 31 марта 2010

Я думаю, что большинство веб-фреймворков Java позволяют вам повторно использовать компоненты и / или теги. Они отличаются гибкостью, контролем, доступностью стандартных компонентов и такими функциями, как URL-адреса, удобные для поисковых систем.

Существует в основном две категории фреймворков: на основе компонентов (JSF, Wicket, Tapestry, GWT) и на основе действий (Struts, Stripes, Webworks, Spring). Оба позволяют повторно использовать компоненты, но основанные на компонентах инфраструктуры скрывают низкоуровневые http-компоненты и позволяют вам использовать полные серверные компоненты состояния.

Какой тип лучше, зависит от того, что вам нужно. Если вам нужен максимальный контроль над HTML, высокопроизводительными и удобными для поисковых систем URL, тогда я бы предпочел среду, основанную на действии. Если вы предпочитаете скрывать сторону http и хотите программировать на более высоком уровне, как будто вы создаете приложение для Windows, то я думаю, что вам лучше работать с компонентной средой.

JSF: сложная структура, большинство программистов считают ее не очень элегантной. Но поскольку это часть стандарта Java EE, это стандарт де-факто.

Wicket: , как и JSF, основанная на компонентах. Но это гораздо проще и элегантнее (возможно, вы захотите рассмотреть Click).

Гобелен: также компонентный фреймворк, он особенно прочен в библиотеке стандартных компонентов для создания мощных веб-приложений.

Полосы: мой личный фаворит, это простой, очень элегантный и простой в освоении MVC-фреймворк. Поскольку это не основанная на компонентах, а основанная на действии структура, она предлагает максимальную гибкость. Он дает вам полный контроль над сгенерированным HTML (как не может большинство основанных на компонентах фреймворков). Это позволяет вам повторно использовать компоненты, повторно используя шаблоны, используемые контроллером Java. Конечный пользователь может просто настроить шаблоны HTML или использовать собственные теги. Я выбрал этот фреймворк, так как он поддерживает генерацию ссылок для дружественной поисковой системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...