Изучаем Java EE 7 - [172]
Когда вы просто хотите перейти со страницы на страницу, выбрав ссылку или нажав кнопку, не выполняя обработки, можно использовать компоненты пользовательского интерфейса
>
Но иногда этого недостаточно, поскольку вы должны получить доступ к бизнес-уровню или базе данных для получения или обработки данных. В этом случае необходимо использовать
>
Представьте, что существует первая страница (newBook.xhtml), отображающая форму для создания книги. Как только вы нажмете кнопку Создать книгу, будет вызван метод компонента-подложки, создана книга и пользователь перейдет на страницу listBooks.xhtml, на которой перечислены все книги. Как только страница загрузится в браузер, ссылка Вернуться к созданию книги позволит вернуться непосредственно к предыдущей странице без какой-либо обработки (рис. 11.5).
Рис. 11.5. Навигация между страницами newBook.xhtml и listBooks.xhtml
Переходить между страницами просто, но это действие по-прежнему нуждается в компоненте-подложке (BookController), чтобы выполнить некоторую бизнес-логику и навигацию. Обе страницы применяют компоненты (кнопки и ссылки) для навигации и взаимодействия с компонентом-подложкой. Страница newBook.xhtml использует кнопку для вызова метода компонента-подложки doCreateBook() (
Компонент
>@Named
>@RequestScoped
>public class BookController {
>··@Inject
>··private BookEJB bookEJB;
>··private Book book = new Book();
>··private List
>··public String doCreateBook() {
>····book = bookEJB.createBook(book);
>····bookList = bookEJB.findBooks();
>····return "listBooks.xhtml";
>··}
>··//Конструкторы, методы работы со свойствами
>}
Правила навигации
Когда компонент-подложка возвращает строку, эта строка может иметь несколько форм. В листинге 11.10 вы могли увидеть самый простой вариант — имя страницы. По умолчанию расширение файла этой страницы —.xhtml, но вы можете изменить его, если сконфигурируете FacesServlet с помощью файла web.xml, как было показано ранее.
С помощью JSF навигация по страницам может быть определена внешне в файле faces-config.xml. В нем навигация конфигурируется с помощью элемента
>@Named
>@RequestScoped
>public class BookController {
>··//…
>··public String doCreateBook() {
>····book = bookEJB.createBook(book);
>····bookList = bookEJB.findBooks();
>····return "success";
>··}
>··// Конструкторы, методы работы со свойствами
>}
В листинге 11.12 показана структура файла faces-config.xml. Тег
>
>
>···············xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
>···············xsi: schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
>···············http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
>···············version="2.2">
>··
>····
>····
>······
>······
>····
>··
>
Навигация может быть выполнена непосредственно в компонентах-подложках или с помощью файла faces-congfig.xml, но как понять, когда следует использовать тот или иной вариант? Первая причина возвращать имя страницы в компоненте-подложке — это простота. Код Java явный, и нет никаких внешних файлов XML, с которыми надо работать. Если же веб-приложению требуется активно сменять отображаемые страницы, лучше хранить правила навигации в одном месте, поскольку при внесении изменений придется поменять только один файл, а не несколько страниц. Можно также использовать комбинированный подход, храня одну часть правил навигации в компонентах-подложках, а другую — в файле faces-config.xml.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.