Изучаем Java EE 7 - [181]

Шрифт
Интервал

Написание страницы viewBook.xhtml

Страница viewBook.xhtml позволяет просмотреть сведения о книге (название, цену, описание, количество страниц и наличие иллюстраций). Она использует возможности добавления в закладки JSF 2, а это означает, что вы можете получить доступ к деталям любой книги, просто изменив URL благодаря ViewAction.

Как видно в листинге 11.21, страница привязывается к параметру id (например, viewBook.xhtml?id=123) атрибута #{bookController.book.id}. Как только идентификатор привязывается, вызывается действие #{bookController.doFindBookById}. Метод BookController.doFindBookById (см. листинг 11.17) вызывает EJB и получает книгу из базы данных, а затем страница может связать атрибуты книги (например, #{bookController.book.title}) с компонентами для вывода текста.


Листинг 11.21. Страница ViewBook.xhtml

>

>········"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

>

>······xmlns: h="http://xmlns.jcp.org/jsf/html"

>······xmlns: ui="http://xmlns.jcp.org/jsf/facelets"

>······xmlns: f="http://xmlns.jcp.org/jsf/core">

>


>··

>····

>····

>··


>··Показать книгу


>··

>····

>······

>······


>······

>······


>······

>······


>······

>······


>······

>······

>····

>··

>

>

Компиляция и упаковка с помощью Maven

Веб-приложения должны быть скомпилированы и упакованы в архив с расширением. war (war). Файл pom.xml, показанный в листинге 11.22, объявляет все необходимые зависимости для компиляции кода (glassfish-embedded-all) и использует JDK версии 1.7.


Листинг 11.22. Файл pom.xml для компиляции и упаковки веб-приложений

>

>

>·········xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" 

>·········xsi: schemaLocation="http://maven.apache.org/POM/4.0.0 

>·········http://maven.apache.org/xsd/maven-4.0.0.xsd">

>··4.0.0


>··

>····chapter11

>····org.agoncal.book.javaee7

>····1.0

>··

>··org.agoncal.book.javaee7.chapter11

>··chapter11

>··1.0

>··war


>··

>····

>······org.glassfish.main.extras

>······glassfish-embedded-all

>······4.0

>······provided

>····

>··


>··

>····

>······

>········maven-compiler-plugin

>········2.5.1

>········

>··········1.7

>··········1.7

>········

>······

>······

>········maven-war-plugin

>········2.2

>········

>··········false

>········

>······

>····

>··

>

Для компиляции и упаковки классов откройте интерпретатор командной строки в каталоге, содержащем файл pom.xml, и введите следующую команду Maven:

>$ mvn package

Перейдите к каталогу target и найдите файл chapter11-1.0.war. Откройте его, и вы увидите, что он содержит сущность Book, BookEJB, компонент-подложку BookController, три дескриптора развертывания (persistence.xml, faces-config.xml и beans.xml) и две веб-страницы (newBook.xhtml и viewBook.xhtml).

Развертывание на GlassFish

После того как вы упакуете веб-приложение, оно должно быть развернуто в GlassFish. Убедитесь, что GlassFish запущен и работает. Откройте окно командной строки, перейдите в каталог target, где находится файл chapter11-1.0.war, и введите следующую команду:

>$ asadmin deploy chapter11-1.0.war

Если развертывание прошло успешно, следующая команда должна возвращать имя развернутого приложения и его тип. Будет выведено два типа: web, поскольку это веб-приложение, и EJB, потому что приложение содержит EJB.

>$ asadmin list components

>chapter11-1.0 

Запуск примера

Теперь, когда приложение развернуто, откройте браузер и перейдите по следующему URL: http://localhost:8080/chapter11-1.0/newBook.faces.

Браузер указывает на newBook.faces, а не на newBook.xhtml из-за стандартного преобразования FacesServlet. По расширению. faces JSF узнает, что должен обработать страницу перед ее отрисовкой. Как только появится страница newBook, введите данные и нажмите кнопку Отправить. Книга сохранится в базе данных и появится в списке в нижней части страницы.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.