2010-11-18 6 views
4

В настоящее время мой веб-приложение на основе следующих библиотек/рамки/инструменты:JSF 1.2 миграции приложений на JSF 2.0

  • Java 1.6
  • JSF 1.2_07-b03-FCS
  • Facelets 1.1 .14 ​​
  • RichFaces 3.3.2.GA
  • EL-Functors 1.0.2
  • Spring 2.5.2
  • Tomcat сервер v5.5

Некоторая дополнительная информация:

  • Spring отвечает за управление всеми бобы, используемые JSF (org.springframework.web.jsf.DelegatingVariableResolver определяется как variable-resolver в моем faces-config.xml файле).
  • EL-Functors используется как мой el-resolver, чтобы расширить язык выражений.
  • Я создал множество пользовательских компонентов, некоторые из них - просто композиции Facelets, другие - компоненты на Java (некоторые из них расширяют компоненты Richfaces).

Я хочу попробовать (в основном из любопытства, но если это работает хорошо, то почему бы не реального?) Перенести мое приложение JSF 2.0.

Вопрос № 1: какие критические моменты я должен учитывать, чтобы приложение работало правильно?

Я говорю здесь только о том, что есть приложение, не меньше, не более.

Я знаю, что мне придется просмотреть все мои пользовательские компоненты, потому что я буду использовать новую версию Richfaces (4.0), а также посмотреть, правильно ли они работают.

Вопрос №2: что станет первым шагом к достижению преимуществ JSF 2.0? Некоторые идеи, которые я уже есть, являются:

  • Удалить EL-Functors и использовать Expression Language 2.2;
  • Позвольте JSF управлять бобами и использовать @ManagedBean. Или, возможно, переключиться на CDI-библиотеку, такую ​​как Weld?
  • Использовать <f:ajax> вместо <a4j:support>?

Что касается JavaEE6

Я знаю, хорошая идея состояла бы в том, чтобы полностью перейти на JavaEE6. Мне понравилось это делать, но по некоторым причинам я просто не могу этого сделать. Одна (плохая) причина в том, что я должен оставаться на серверах Tomcat. Однако я могу добавить новые сторонние библиотеки, чтобы иметь некоторые функции JavaEE6, такие как EL 2.2 ... Поэтому, пожалуйста, рассмотрите этот аспект в своих ответах.

С уважением.

ответ

1

Поскольку Richfaces 4 все еще находится в разработке, вы можете использовать Richfaces 3.3.3 с JSF 2.0. Таким образом, вы должны использовать Facelets 1.1.15, как описано здесь http://community.jboss.org/wiki/RichFaces333andJSF20

Это означает, что переход от a4j: поддержка F: Ajax не будет работать с вашим RichFaces компоненты, основанной поэтому я предлагаю придерживаться a4j: поддержка. Это также уменьшит миграцию, если вы решите переключиться на Richfaces 4, как только она станет доступной.

Поскольку вы уже используете Spring для управления JSF-Beans, не должно быть необходимости использовать DI-функции JSF2. Я придерживаюсь Spring, но рассмотрю обновление до Spring 3.

Кроме этого, Weld определенно стоит взглянуть.

НТН

1

Если вы планируете остаться с Tomcat, а затем переход к Java EE 6 означает, что вы собираетесь смотреть на Tomcat версии 7.

Но если вы хотите полноценную Java EE 6, то GlassFish 3 или JBoss 6 - лучшая альтернатива. Tomcat может быть неудобным, когда вы пытаетесь сделать что-то вроде CDI (Weld) или EJB 3.

Только мои два цента стоит. Надеюсь, это поможет ...

Смежные вопросы