Изучаем Java EE 7 - [167]
Вы также можете настроить несколько параметров, касающихся JSF, внутри
Параметр | Описание |
---|---|
javax.faces.CONFIG_FILES | Определяет список разделенных запятой зависящих от контекста путей, по которым реализация JSF будет искать ресурсы |
javax.faces.DEFAULT_SUFFIX | Позволяет веб-приложению определить список альтернативных суффиксов для страниц, имеющих содержимое JSF (то есть с расширением. jsf) |
javax.faces.FACELETS_BUFFER_SIZE | Размер буфера ответа. По умолчанию равно –1 |
javax.faces.FACELETS_REFRESH_PERIOD | Когда запрашивается страница, этот параметр будет использоваться как интервал, по истечении которого компилятор будет проверять наличие изменений. Значение –1 отключает эту проверку |
javax.faces.FACELETS_SKIP_COMMENTS | Если установлено значение true, среда выполнения гарантирует, что XML-комментарии на странице Facelets не будут доставлены клиенту |
javax.faces.LIFECYCLE_ID | Идентифицирует объект типа Lifecycle как использованный при обработке запросов JSF |
javax.faces.STATE_SAVING_METHOD | Определяет местоположение сохранения состояния. Корректными значениями являются server, которое задается по умолчанию (обычно сохраняется в HttpSession), и client (сохраняется в скрытом поле при последующей отправке формы) |
javax.faces.PROJECT_STAGE | Описывает, на каком этапе жизненного цикла находится это конкретное приложение JSF (Development, UnitTest, SystemTest или Production). Этот параметр может быть использован реализацией JSF для кэширования ресурсов, например, чтобы улучшить производительность на производстве |
javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER | Значение true отключает Facelets как стандартный язык объявления страниц (PDL) |
javax.faces.WEBAPP_RESOURCES_DIRECTORY | Если установлено значение этого параметра, среда выполнения JSF интерпретирует его как путь относительно корня веб-приложения, где должны располагаться ресурсы |
javax.faces.LIBRARIES | Интерпретирует каждый файл, найденный в списке путей, разделенных двоеточием, как библиотеку тегов Facelets |
FacesContext
JSF определяет абстрактный класс javax.faces.context.FacesContext для представления контекстной информации, связанной с обработкой входящих запросов и создания соответствующего ответа. Этот класс позволяет взаимодействовать с пользовательским интерфейсом и остальной частью среды JSF.
Чтобы получить к нему доступ, вы можете использовать на ваших страницах неявный объект FacesContext (см. главу 10 для обсуждения неявных объектов) или получить ссылку в ваш компонент-подложку с помощью статического метода getCurrentInstance(). Он вернет экземпляр класса FacesContext для текущего потока, а затем вы можете вызвать методы, перечисленные в табл. 11.2.
Метод | Описание |
---|---|
AddMessage | Присоединяет сообщение (информационное, предупреждающее, сообщение об ошибке либо сообщение о фатальной ошибке) |
GetApplication | Возвращает объект типа Application, связанный с этим веб-приложением |
GetAttributes | Возвращает объект типа Map, представляющий атрибуты, связанные с объектом типа FacesContext |
getCurrentInstance | Возвращает объект типа FacesContext для запроса, который обрабатывается в текущем потоке |
getELContext | Возвращает объект типа ELContext для текущего объекта типа FacesContext |
getMaximumSeverity | Возвращает максимальную степень тяжести, записанную в любом FacesMessage, внесенном в очередь |
GetMessages | Возвращает коллекцию объектов типа FacesMessage |
getPartialViewContext | Возвращает объект типа PartialViewContext для заданного запроса. Он используется для внедрения логики в цикл управления обработкой/отрисовкой (например, для обработки AJAX) |
getViewRoot | Возвращает корневой компонент, связанный с запросом |
release | Высвобождает любые ресурсы, связанные с объектом типа FacesContext |
renderResponse | Сигнализирует реализации JSF о том, что текущая фаза обрабатывающего запросы жизненного цикла была закончена, управление должно быть передано фазе «Отрисовать ответ», минуя любые фазы, которые еще не были выполнены |
responseComplete | Сигнализирует реализации JSF о том, что HTTP-ответ для этого запроса уже был сгенерирован (например, переадресация НТТР), а также о том, что жизненный цикл обработки запросов должен прекратить свою работу, как только завершится текущая фаза |
Faces-config.xml
Класс FacesServlet является внутренним в реализациях JSF, и, хотя у вас нет доступа к его коду, вам требуются метаданные, чтобы настроить его или некоторые свойства в файле web.xml, как показано в листинге 11.1. К настоящему времени вы привыкли к двум возможным вариантам работы с метаданными в Java EE 7: аннотации и дескрипторам развертывания XML (/WEB-INF/faces-config.xml).
До появления JSF 2.0 единственный выход заключался в использовании XML, сегодня же компоненты-подложки, преобразователи, слушатели событий, отрисовщики и валидаторы могут иметь аннотации, поэтому использование XML-файлов для конфигурации стало необязательным. Даже большая часть навигации между страницами может быть организована с помощью либо XML, либо Java-кода. В листинге 11.2 показан фрагмент файла faces-config.xml. В этом примере определяется локаль по умолчанию (fr), набор сообщения для интернационализации, а также некоторые правила навигации. Скоро вы увидите, как можно наладить систему навигации и без помощи 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 так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.