Изучаем Java EE 7 - [173]
Есть один случай, когда использование XML-конфигурации очень полезно. Когда существуют глобальные ссылки на некоторые страницы (например, авторизация или выход могут быть выполнены во всем приложении), вам не захочется объявлять их на каждой странице. Глобальные правила навигации могут быть указаны в XML (эта же особенность невозможна внутри компонентов-подложек).
>
>··
>··
>····
>····
>··
>
Если у вас есть действие, которое выполняется на каждой странице приложения, вы можете использовать элемент navigation-rule без элемента
Предыдущие примеры показали простой вариант навигации, когда каждая страница имеет только одно правило навигации и только одну страницу, на которую следует перейти. Это не самый распространенный случай, и, в зависимости от определенных правил и исключений, пользователи могут быть перенаправлены на разные страницы. Этого можно достичь как с помощью компонентов-подложек, так и с помощью файла faces-config.xml. В следующем коде показан оператор switch, который перенаправляет пользователя на разные страницы. Обратите внимание, что если возвращено значение null, пользователь возвращается обратно на текущую страницу:
>public String doCreateBook() {
>··book = bookEJB.createBook(book);
>··bookList = bookEJB.findBooks();
>··switch (value) {
>····case 1: return "page1.xhtml"; break;
>····case 2: return "page2.xhtml"; break;
>····default: return null; break;
>··}
>}
В версии JSF 2.0 внесено улучшение, касающееся условных переходов по страницам. Оно позволяет указывать предварительное условие, которое должно быть удовлетворено для перехода на другую страницу. Это предварительное условие определяется как выражение с новым конфигурационным элементом
>
>··
>····
>······
>······
>······
>····
>
Добавление страниц в закладки
До выхода версии JSF 2.0 каждое взаимодействие клиента и сервера происходило на основе HTTP POST (
ViewParam и ViewAction предоставляют механизм обработки GET-запросов и связывания параметров, переданных с HTTP-запросом, со свойствами модели, используя EL. Страница с тегом
>
>··< f: viewParam name="id" value="#{bookController.book.id}"/>
>
Как только извлекается параметр id из запроса HTTP и связывается со свойством, вам следует вызвать действие компонента-подложки. В JSF 2.2 определен новый тег
>
>··
>··
>
Этот прием позволяет вам непосредственно менять URL в браузере, чтобы указать на желаемую книгу (например, viewBook.xhtml?id=123 или viewBook.xhtml?id=456) и добавить страницу в закладки.
Преобразование и проверка
Вы уже видели, как обрабатывать сообщения для того, чтобы проинформировать конечного пользователя о действиях, которые необходимо предпринять. Одним из возможных действий может быть исправление неверно введенного значения (например, неправильного ISBN). JSF предоставляет стандартный механизм преобразования и проверки, который может обрабатывать данные, введенные пользователем для того, чтобы обеспечить их целостность. Благодаря ему вы можете быть уверены в корректности данных при вызове бизнес-методов для их обработки. Преобразование и проверка позволяют разработчику сфокусироваться на бизнес-логике, а не на проверке введенных данных на равенство значению null, вхождении в диапазон значений и т. д.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.