Если вы хотите создать веб-приложение JSF 2.0 за 10 минут, вот краткое руководство.
Я никогда не давал шанс JSF. В JSF 1.X была ограниченная поддержка инструментов, компоненты были довольно простыми. это действительно не привлекло мое внимание. Я знаю, что JSF 2.0 был выпущен более 2-х лет назад, так что это было давно в моем списке задач.
В последнее время я много работаю с Spring Roo, и, поскольку Spring Roo 1.2.0.M1 был выпущен, я прочитал запись в блоге Алана Стюарда, в которой упоминалось, что следующий релиз 1.2 будет включать поддержку JSF / PrimeFaces.
Я не мог больше ждать, поэтому продолжил работу со снимком и создал веб-приложение JSF 2.0. Это впечатляет, если вы хотите увидеть результат, я развернул его на CloudFoundry: http://roojsfpreview.cloudfoundry.com/ (если у вас еще нет учетной записи cloudfoundry, вам обязательно нужно зарегистрировать бесплатную учетную запись)
Снимок экрана развернутого примера приложения JSF 2.0
нажмите здесь, чтобы увидеть его в полном размере
Как продать свой мозг?
На днях я проводил весеннюю тренировку, и участники просто сказали: пожалуйста, больше примеров пиццы! Поэтому они придумали идею создать специальный магазин для продажи органов.
Конечно, это, вероятно, политически некорректно, но привлекло их внимание до конца обучения. Итак, здесь мы создаем ‘орган-залив’ за 10 минут
— Загрузите последний снимок из CI springsource: http://static.springsource.org/downloads/nightly/snapshot-download.php?project=ROO
unzip /path/to/spring-roo-1.2.0.BUILD-SNAPSHOT_201110XX.XXXXXXXXXXX.zip ROO_HOME=$(readlink -f spring-roo-1.2.0.BUILD-SNAPSHOT) PATH=$ROO_HOME/bin:$PATH roo.sh ____ ____ ____ / __ \/ __ \/ __ \ / /_/ / / / / / / / / _, _/ /_/ / /_/ / /_/ |_|\____/\____/ 1.2.0.BUILD-SNAPSHOT [rev 1195a76] Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
Как только вы получите приглашение оболочки roo, введите следующие команды:
project --topLevelPackage com.organbay --projectName rooj-jsf-app persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY enum type --class ~.domain.BloodType enum constant --name Group_A enum constant --name Group_B enum constant --name Group_AB enum constant --name Group_0 entity jpa --class ~.domain.Organ field number --fieldName price --type java.lang.Integer --notNull --min 5 field string --fieldName name --notNull field date --fieldName bestBefore --type java.util.Date --dateFormat SHORT --notNull field string --fieldName description entity jpa --class ~.domain.Donor field string --fieldName name --sizeMax 25 --notNull field enum --fieldName bloodType --type ~.domain.BloodType --notNull field date --fieldName birthDate --type java.util.Date --past field string --fieldName email --regexp "[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+" --notNull field set --fieldName organs --type ~.domain.Organ --mappedBy donor --notNull false --cardinality ONE_TO_MANY field reference --fieldName donor --class ~.domain.Organ --type ~.domain.Donor --notNull web jsf setup --implementation APACHE_MYFACES --theme EGGPLANT web jsf all --package ~.jsf quit
Теперь приложение готово к развертыванию. Цель tomcat: run maven была бы идеальной для этой цели. Чтобы использовать JSF 2.0, вам понадобится tomcat 7.x, но, к сожалению, версия плагина tomcat maven, поддерживающая tomcat 7, находится в стадии разработки, поэтому я обнаружил, что его легче использовать грузовой плагин:
mvn package org.codehaus.cargo:cargo-maven2-plugin:run -Dcargo.maven.containerId=tomcat7x -Dcargo.maven.containerUrl=http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.zip ... [WARNING] [talledLocalContainer] Oct 26, 2011 5:06:08 PM org.apache.catalina.startup.Catalina start [WARNING] [talledLocalContainer] INFO: Server startup in 31856 ms [INFO] [talledLocalContainer] Tomcat 7.x started on port [8080] [INFO] Press Ctrl-C to stop the container...
теперь вы можете открыть веб-приложение в своем браузере: http: // localhost: 8080 / rooj-jsf-app-0.1.0.BUILD-SNAPSHOT / pages / donor.jsf
Разверните его в облаке
если вы хотите поделиться своим новым блестящим веб-приложением в облаке, у вас будет несколько вариантов: amazon ec2, амазонский бобовый стебель, heroku, cloudfoundry, вы называете его.
Я просто выбрал cloudfoundry, поскольку у него есть плагин roo, и для его развертывания потребовалось всего 3 строки:
cloud foundry login --email [email protected] --password idonttellya cloud foundry deploy --appName roojsfpreview --path /target/rooj-jsf-app-0.1.0.BUILD-SNAPSHOT.war cloud foundry start app --appName roojsfpreview
Так что больше нет оправдания тому, чтобы не дать JSF 2.0 попробовать. Я был весьма впечатлен сгенерированным приложением простых лиц, с точки зрения привлекательности глаз, и такими функциями, как:
- Проверка на стороне клиента на основе аннотации JSR-303, прикрепленной к объектам
- AJAX нумерация страниц
- Модальные диалоговые окна
- Виджет календаря
- Автозаполненный выпадающий список для отношения 1: N
- Автозаполненный выпадающий список для перечислений
- автоматическое скрытие всплывающих сообщений типа рычания
Я даже смог добавить переключатель темы за пару минут (возможно, это хороший кандидат для включения в дополнение JSF или, возможно, новое зависимое дополнение JSF). Давайте начнем создавать веб-приложение JSF 2.0 сегодня!
Следите за хорошей работой Алана Стюарда и всей команды Spring Roo!