Начала Программирования Веб Приложений с NetBeans Visual Web JSF
Эта обучающая программа даст Вам как ураган стремительную экскурсию по визуальной разработке веб приложений в NetBeans IDE 6.0, 6.1 или 6.5. Данная обучающая программа расскажет Вам, как использовать функциональные возможности (проектов) Visual Web JSF Application и компонентов JavaServer Faces 1.2 (Woodstock) при выполнении типичных фаз разработки веб приложений.
Обучающая программа построена так, что Вам необязательно нужно следовать представленной в ней последовательности. Вы можете просмотреть ее быстро, а затем вернуться к каждому разделу как только позволит время. Если Вы предпочитаете пошаговое обучение, можете попробовать сначала Developing a JSF Web Application.
Содержание
Для выполнения этой обучающей программы Вам необходимо следующее программное обеспечение и ресурсы.
| NetBeans IDE |
Web & Java EE version 6.5, 6.1, or 6.0 |
| Java Development Kit (JDK) |
версия 6 или версия 5 |
Компоненты JavaServer Faces/ Платформа Java EE |
1.2 с Java EE 5* или 1.1 с J2EE 1.4 |
| Сервер приложений GlassFish |
V2 |
| База данных Travel |
Требуется для некоторых разделов |
* Используйте сервер приложений, который полностью соответствует требованиям спецификации Java EE 5, такой как GlassFish Application Server V2 UR2 , и Вы тогда используете возможности NetBeans IDE для Java EE 5. Если вы используете другой сервер , проконсультируйтесь с Замечаниями к Выпуску (Release Notes) и FAQs по поводу известных проблем и их преодоления. Подробную информацию о поддерживаемых серверах и Java EE платформе смотрите в Замечаниях к Выпуску (Release Notes).
Замечания для пользователей NetBeans IDE 6.1:
- Создание проекта в NetBeans IDE 6.1 или 6.5 включает новые настройки, которые можно оставить установленными IDE по умолчанию. Например, флажок Использовать Специальную Папку для Хранения Библиотек (Use Dedicated Folder for Storing Libraries) можно оставить неотмеченным.
- NetBeans IDE 6.1 или 6.5 имеет возможности связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительно смотрите On-demand Binding Attribute Wiki.
Старт Проекта
Проект представляет собой эквивалент рабочего окружения для Вашего веб приложения. Когда Вы создаете проект Визуального Веб JSF Приложения (Visual Web JSF Application), Вы должны определить в качестве сервера приложений в NetBeans IDE сервер GlassFish V2 или более новый , тогда IDE сможет создать веб приложение, основанное на Java EE 5, использущую компоненты JavaServer Faces 1.2 . Веб приложение создается по умолчанию в каталогах со структурой, удовлетворяющей соглашениям Java BluePrints для веб приложений.
Попробуй
-
Запустите IDE, используя подходящий пункт из следующего списка:
- Windows, Solaris и Linux. Щелкните дважды ярлык NetBeans.
- О162Mac. В MacOS исполняемое содержимое установлено в каталог
/Applications/NetBeans/. Щелкните дважды ярлык NetBeans в этом каталоге.
-
Создайте проект Visual Web JSF Application:
- Выберите в главном меню File > New Project.
- В мастере New Project выделите категорию Web и тип проекта Web Application, щелкните Next.
- Назовите проект GettingStarted. Обратите внимание на расположение проекта по умолчанию. Если хотите, нажмите кнопку Browse и выберите другое расположение.
Замечания для пользователей NetBeans IDE 6.1: Создание проекта в NetBeans IDE 6.1 включает новые настройки, которые можно оставить установленными IDE по умолчанию Например, флажок Использовать Специальную Папку для Хранения Библиотек (Use Dedicated Folder for Storing Libraries) можно оставить неотмеченным.
-
Выберите сервер и версию Java EE.
Например, по умолчанию это сервер GlassFish V2, и Java EE 5 - Версия по умолчанию Java EE .
- Нажмите Next.
- В панелиFrameworks выделите структуры (framework) Visual Web JavaServer Faces
- Нажмите Finish чтобы создать новый проект в установленном по умолчанию расположении или в выбранном на шаге c.
- IDE создаст каталог проекта в выбранной ( или по умолчанию) папке проекта, и даст ему такое же имя, как и у проекта.
-
Изучите окно Projects. Как показано на следующем рисунке, окно Projects группирует составляющие по категориям. Расширьте каждй узел чтобы посмотреть, какие типы входят в каждую категорию.
- Под узлом Web Pages есть узел Page1.jsp. IDE создает эту страницу по умолчанию и делает ее стартовой страницей. Значок стрелки
сразу после узла означает, что эта страница стартовая. Если Вы хотите использовать другую стартовую страницу, щелкните правой кнопкой мыши узел нужной страницы и выберите Set as Start Page из выпадающего меню.
-
Щелкните вкладку Files или выберите из главного меню Window > Files чтобы вынести на передний план окно Files. Это окно организует свои составляющие по их физическому хранению. Расширьте узлы чтобы видеть их структуру. Обратите внимание на значок
, который появляется сразу после узла ApplicationBean1.java и некоторых других узлов, как например, Page1.java. Этот значок означает, что этот файл нужно компилировать. IDE компилирует файлы автоматически когда Вы выполняете построение проекта.
- Обратите внимание на узел GettingStarted > src > java > gettingstarted > Page1.java на рисунке выше. Этот Java класс является бобом поддержки (backing bean) для файла Page1.jsp. Всякий раз, когда Вы добавляете в проект страницу, IDE создает как
.jsp файл, так и .java файл для этой страницы. В следующей секции вы узнаете больше о .jsp и .java файлах.
Для дополнительной информации
- Выберите из главного меню Help > Help Contents чтобы открыть файл помощи. На панели Contents слева выделите Web Applications > About Web Applications > Working with Web Applications.
Создание Веб Страниц
Для приложений Visual Web JSF Вы вместо HTML страниц будете использовать технологию JavaServer Pages (JSP) и page beans (бобы страницы) (известных также как backing beans). JSP страница - это шаблон, из которого сервер порождает HTML отклик для отображения в браузере (клиенте). Бин (боб, bean) страницы содержит логику действий для сервера как во время порождения HTML отклика , так и после отправки подтверждения (submit) страницы пользователем.
Когда Вы добавляете веб страницу в Visual Web JSF приложение, IDE создает для Вас как JSP файл, так и файл исходного кода Java. По большей части, Вы будете использовать для разработки веб страницы Конструктор ( Visual Designer) и окно Свойств (Properties). IDE измнит код JSP и код Java как нужно для выполнения вашего замысла. Большую часть Вашей работы можно сделать в Visual Designer и окне Properties.
Примечание: JSP страницы, которые порождает IDE, являются документами JSP. JSP документ - это XML документ, и , таким образом, должен быть правильно отформатирован. Хотя большинство JSP элементов соответствуют синаксису XML, существуют некоторые элементы, не подходящие для XML , такие, как комментарии (comments), объявления (declarations), директивы (directives), выражения (expressions), и скриптлеты (scriptlets). Смотрите синтаксис для документов JSP в JavaServer Pages Syntax Reference.
Попробуй
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
-
В окне Projects щелкните правой кнопкой мыши узел Web Pages и выберите New > Visual Web JSF Page, как показано на следующем рисунке.
-
Согласитесь с установленным по умолчанию именем Page2 и нажмите Finish. IDE откроет страницу Page2 в Visual Designer, которая является областью редактирования, как показано на следующем рисунке.
-
Щелкните кнопку Java на панели редактирования чтобы увидеть исходный код для бина страницы, как показано на следующем рисунке. Когда в области редактирования видно исходный код Java, в окне Navigator перечисляются все члены полей и методов. Обратите внимание на то, что исходные коды страниц содержат методы для доступа к бинам Приложения (Application Bean), Сессии (Session Bean), и Запроса (Request Bean). Смотрите секцию Сохранение и Передача Данных этой обучающей программы для разъяснений по этим трем типам бинов.
-
Исходный код содержит также методы, которые вызываются во время событий данного жизненного цикла (бина) в промежутке времени между моментом запроса страницы и моментом, когда передача страницы завершается.
Совет:Двойной щелчок члена в окне Navigator открывает редактор исходного кода и позиционирует курсор на объявлении этого члена. Вы также можете щелкнуть окно Navigator и начать печатать первые несколько букв имени члена для открытия диалоговой панели Quick Search (Быстрый Поиск). Продолжайте печатать, пока IDE подсветит желаемый элемент в списке, как показано на следующем рисунке. Вы можете теперь нажать Enter, чтобы открыть редактор исходного кода и позиционировать курсор на объявлении соответствующего члена.
-
Щелкните кнопку JSP на панели инструментов редактора чтобы увидеть код JSP для этой страницы, как показано на следующем рисунке. Обратите внимание на то, как страница JSP использует синтаксис документа JSP.
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
-
Щелчок по кнопке Design на панели инструментов переключает редактор на Визульный Конструктор и отображает его представление в окне Navigator. Если Вы откроете узлы под узлом страницы Page2, то сможете увидеть узлы, показанные на следующем рисунке. Обратите внимание на то, как тэги файла JSP представленны в виде узлов в окне Navigator.
Для дополнительной информации
Добавление Компонентов на Веб Страницу
Вы конструируете веб страницу перетаскивая компоненты из Палитры и бросая их на веб страницу в Визуальном Конструкторе. Следующий рисунок показывает страницу Page2 с компонентами Button, Text Field, Message, Drop Down List, и Radio Button Group. Все эти компоненту доступны из Основной (Basic) секции Палитры. Компоненты эти можно настроить изменяя из свойства (properties). В этой секции позже вы узнаете больше об этих свойствах.
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
Примечание: Компоненты, доступные из Палитры, являются компонентами JavaServer Faces (JSF), которые были улучшены согласно Design Time API (API Периода Конструировани) чтобы сделать их свойства доступными для Визуального Конструктора и окна Свойств (Properties). Вы можете использовать и другие компоненты в веб приложениях, построенных с помощью IDE, но у Вас не будет возможности использования конструкторских свойстав IDE по непосредственному взаимодействию с этими компонентами, пока они не будут настроены согласно требованиям Design Time API. Если Java EE версия установлена в Java EE 5, Палитра выдает компоненты JSF 1.2. Если при создании проекта Вы установили Java EE версию в 1.3 или 1.4, Палитра выдает компоненты JSF 1.1.
Большая часть компонентов, которые Вы будете использовать, находятся в секциях Woodstock (Лес Инструментов) Basic, Woodstock Layout, and Woodstock Composite окна Палитры. Следующие таблицы показывают некоторые из наиболее часто используемых компонентов, сгруппированные по их функциональности.
Таблица 1: Компоненты для Ввода ( Input Components)
| Компонент |
Описание |
Секция Палитры |
| Text Field (Текстовое Поле) |
Поле для ввода одной строки текста. |
(Woodstock) Basic |
| Text Area (Текстовая Область) |
Поле для ввода нескольких строк текста. |
(Woodstock) Basic |
| Drop Down List (Выпадающий Список) |
Выпадающее меню, известное также как combo box (комбинированное поле со списком). |
(Woodstock) Basic |
| Listbox (Поле со Списком) |
Поле со списком, из которого пользователь может выбрать один элемент или несколько элементов, в зависимости от того, как этот компонент настроен. |
(Woodstock) Basic |
| Checkbox (Флажок) |
Одно-буквенное поле, которое пользователь может либо выделить (отметить), либо очистить. |
(Woodstock) Basic |
| Radio Button (Радио Кнопка, Переключатель) |
Пользователь может выделить (отметить) только одну кнопку. |
(Woodstock) Basic |
| Password Field (Поле для Пароля) |
Поле для ввода, которое отображает вводимые буквы замененными буквами чтобы замаскировать ввод. |
(Woodstock) Basic |
| File Upload (Загрузка Файла) |
Компонент с текстовым полем для ввода и кнопкой Browse, которая отображает панель выбора файла (file chooser), чтобы задать файл для загрузки. Приложение загрузит заданный файл, когда пользователь передаст страницу. | (Woodstock) Basic |
| Add Remove (Добавить Удалить) |
Два списка (один для возможных элементов и один для выбранных элементов) с кнопками для перемещения элементов между списками и упорядочения элементов. | (Woodstock) Composite |
| Calendar (Календарь) |
Поле для ввода и календарь для выбора дат. | (Woodstock) Basic |
Таблица 2: Компоненты для Отображения (Display Components)
| Компонент |
Описание |
Секция Палитры |
| Label (Надпись) |
Текстовое поле, которое можно связать с полем для ввода, и для которого вы можете назначить стиль шрифта слабый, средний или сильный. |
(Woodstock) Basic |
| Static Text (Постоянный Текст) |
Поле для отображения текста. |
(Woodstock) Basic |
| Image (Изображение) |
Изображение в стоке (HTML). |
(Woodstock) Basic |
| Message (Сообщение) |
Текстовое поле, присоединенное к определенному компоненту для отображения ошибок правильности его поведения и других сообщений от этого компонента. |
(Woodstock) Basic |
| Message Group (Группа Сообщений) |
Текстовое поле для отображения сообщений об ошибках периода выполнения, порождаемых программой сообщений об ошибках, ошибок правильности страницы и других сообщений от компонентов этой страницы. |
(Woodstock) Basic |
| Page Alert ( Страница Предупреждения) |
Подобно компоненту Alert (Тревога) (ниже), но предназначен для отображения значка и информации на отдельной странице. |
(Woodstock) Layout |
| Alert (Тревога) |
Отображает значок и текстовую информацию, такую, как предупреждения, ошибки, успешное завершение некоторых событий. |
(Woodstock) Composite |
| Hidden Field (Скрытое Поле) |
Невидимое поле, которое можно использовать для хранения данных или для передачи информации на сервер. |
(Woodstock) Basic |
| Page Separator (Разделитель Страниц) |
Горизонтальная линия, которая изменят свой размер до любой ширины страницы по выбору пользователя. |
(Woodstock) Layout |
| Form (Форма) |
Используется для добавления формы. |
(Woodstock) Layout |
| Inline Help (Помощь в Строке) |
Обеспечивает краткую информацию помощи , которая появляется в строках страниц. |
(Woodstock) Composite |
| Bubble Help (Помощь в Пузырьке) |
Предназначена для появления если наводится сверху мышь. Вы можете вручную установить задержку, как долго пузырек будет оставаться видимым. |
(Woodstock) Composite |
| Accordion (Аккордеон) |
Используется для вертикальной табуляции вкладок. |
(Woodstock) Composite |
Таблица 3: Групповые Компоненты (Grouping Components)
| Компонент |
Описание |
Секция Палитры |
| Checkbox Group (Группа Флажков) |
Отображает два или более флажков в сетчатом размещении (grid layout). |
(Woodstock) Basic |
| Radio Button Group (Группа Радио Кнопок (Переключателей)) |
Отображает два или более переключателей в сетчатом размещении (grid layout) и обеспечивает возможность выбора только одной кнопки. |
(Woodstock) Basic |
| Table, Table Row Group, and Table Column (Таблица, Группа Строк Таблицы и Столбик Таблицы) |
Отображает данные сложных типов данных, таких как таблица базы данных или массив. |
(Woodstock) Basic |
| Grid Panel (Сетчатая Панель) |
Организовывает расположение компонетов по строкам и столбцам. |
(Woodstock) Layout |
| Group Panel (Папель Группы) |
Группирует набор компонентов способом перетекающего размещения (flow layout). |
(Woodstock) Layout |
| Layout Panel (Панель Размещении) |
Используется для группирования набора компонентов способом перетекающего размещения (flow layout) или сетчатого размещения (grid layout). |
(Woodstock) Layout |
| Tab Set and Tab (Набор Вкладок и Вкладка) |
Отображает разные размещения на одной и той же страницы. Можно так же использовать как инструмент навигации. |
(Woodstock) Layout |
| Page Fragment Box (Панель Фрагмента Страницы) |
Группирует компонеты если Вы хотите последовательно отображать их на двух или более страницах. |
(Woodstock) Layout |
| Property Sheet, Property Sheet Section, and Property (Лист Свойств, Секция Листа Свойств, Свойство) |
Быстро размещает в один столбик надписанные компоненты и разделяет компоненты по секциям. |
(Woodstock) Layout |
| Breadcrumbs (Корочки хлеба) |
Размещает серию ссылочных компонентов, разделенных правыми угловыми скобками (>). |
(Woodstock) Composite |
Таблица 4: Компоненты действий (Action Components)
| Компонент |
Описание |
Секция Палитры |
| Button (Кнопка) |
Кнопка чтобы подтвердить связанную с ней форму. |
(Woodstock) Basic |
| Hyperlink (Гиперссылка) |
Тектовое поле, которое подставляет URL или подставляет форму. |
(Woodstock) Basic |
| Image Hyperlink (Изображение для Гиперссылки) |
Изображение, которое подставляет URL или подставляет форму. |
(Woodstock) Basic |
| Tab (Вкладка) |
Подчиненный компонент Набора Вкладок (Tab Set) или Вкладки (Tab). Вкладка может дополнительно подставлять URL или подставлять форму. |
(Woodstock) Layout |
| Common Task (Общая Задача) |
Ссылка на страницу (Visual web JSF) где пользователь может выполнить задачу. |
(Woodstock) Composite |
Вы должны использовать листы свойств компонента в окне Properties для того, чтобы изменить представление и поведение компонента, чтобы связать компонент с данными, или сопоставить компонент с обработчиками событий.
Следующий рисунок показывает свойства для компонента Listbox.
Попробуй
Откройте страницу Page2 , которую Вы создали, следуя предложенному Попробуй в секции Создание Веб Страниц, или создайте ее, если нужно.
Перетащите разнообразные компоненты из секций Основная (Basic) и Размещение (Layout ) окна Палитры (Palette) и поупражняетесь с их свойствами. Например, попрбуйте следующие шаги:
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
- Перетащите компонент Кнопка (Button), напечатайте
Click Me! и нажмите Enter. В окне Properties заметьте, как свойство text приобрело значение Click Me!. В окне Properties выделите флажок primary и заметьте, как изменилось представление кнопки.
Примечание: Теперь известно, как воздействоваь на ширину JSF 1.2 компонента Кнопка в IE7. Нужно поместить сопонент Кнопка на компонент размещения (Grid Panel, Group Panel, or Layout Panel). Изменение размеров компонента размещения автоматически изменяет размер компонента Кнопка.
- Перетащите на страницу компонент Text Field. Затем перетащите на страницу компонент Label, напечатайте
Name: и нажмите Enter. Сделайте Ctrl-Shift-Click внутри компонента Label и переащите его на компонент Text Field, затем отпустите кнопку мыши. Выделите компонент Label и заметьте, как его свойство for теперь установлено в указатель (id) для компонента Text Field. Установите labelLevel в Strong (1) (Сильный).
- Перетащите компонент Message и вставьте его справа от Text Field. Сделайте Control-Shift-Drag от Message Component в компонент Text Field. Как и для компонента Label заметьте, что свойство
for компонента Message теперь установлено в указатель (id) для компонента Text Field.
- Перетащите и вставьте на страницу компонент Drop Down List и установите его свойство
label в Color. Щелкните правой кнопкой мыши компонент Drop Down List и выберите Configure Default Options (Конфигурировать Настройки по Умолчанию) для открытия Options Customizer (Пользовательская Настройка).
- Нажмите Tab чтобы перейти в режим редактирования для элемента Item 1, в столбике Display напечатайте
Blue. Нажмите tab дважды и измените Item 2 на White. Нажмите tab дважды еще раз и измените Item 3 в Green. Нажмитте OK и обратите внимание на то, как Ваши изменения подействовали на компонент в Визуальном Конструкторе.
-
Используйте подобные шаги для создания компонента Radio Button Group с выбором Blue, White, и Red, но только пока не закрывайте совсем Options Customizer.
В Options Customizer выделите флажок Select Items, а затем один переключатель в столбике Selected, чтобы установить этот элемент выделенным по умолчанию. Нажмитеk OK чтобы применить изменения и отпустить Options Customizer. В окне Properties установите свойство columns на 3 чтобы выстроить радио кнопки по горизонтали, а не по вертикали .
- Щелкните правой кнопкой мыши задний план страницы, любое пустое место на странице, и выберите Preview in Browser чтобы увидеть, как браузер представляет компоненты.
Для дополнительной информации
Получение Помощи
IDE предоставляет Просмотр Помощи (Help Viewer), которая содержит темы помощи по IDE. Так же, когда вы нажимаете F1 в окне, диалоговой панели или на компоненте Палитры, появляется окно просмотра Помощи и отображается информация об этом элементе. Чтобы получить доступ к темам помощи Visual Web JSF Pack, включая помощь по компонентам, Вы должны выбрать в главном меню Help > Help Contents и сделать прокрутку к Web Applications.
Попробуй
- Щелкните внутри окна Properties для Checkbox Group. Нажмите F1 и увидите тему о свойствах компонента Checkbox Group.
- Выделите узел для компонента Text Field на секции Basic Палитры. Нажмите F1 и увидите тему о свойствах компонента Text Field.
Построение и Проверка Веб Приложения
Когда Вы уже готовы, чтобы проверить проект, нажмите F6 или выберите в главном меню Run > Run Main Project. IDE выпоняет следующие действия:
- Сохраняет те файлы, которые нужно сохранить.
Компилирует те файлы, которые нужно компилировать.
Если возникли сложности, IDE отображает в окне Output (показано ниже) соответствующие сообщения об ошибках и не продолжает процесс построение-и-выполнение (build-and-run). Щелкните ссылку в сообщении об ошибке чтобы перейти к исходному коду, который является причиной ошибки компилирования.
- Запускает сервер приложений, если он еще не запущен.
Разворачивает приложение на сервере приложений.
Если возникли сложности, IDE отображает в окне Output соответствующие сообщения об ошибках и не продолжает процесс построение-и-выполнение (build-and-run).
Открывает браузер и посылает URL развернутого приложения в браузер, который, в свою очередь, отображает стартовую страницу.
Примечание: Если Вы добавили компоненты не на стартовую страницу, в данной точке этой обучающей программы Вы не увидите эти компоненты в веб браузере. Смотрите секцию Попробуй ниже для установки навигации от стартовой страницы к другой странице в Вашем приложении.
Если Вы обнаружили некоторые потери или удаление некоторых элементов, или Вам кажется немного неожиданным поведение (проекта), выберите из главнго меню Build > Clean and Build Main Project . IDE очистит каталог build и каталог dist проекта, отменит развертывание веб приложения, а затем построит и развернет приложение.
Попробуй
- Если в Ваше проекте менее двух страниц, создайте новую, щелкнув правой кнопкой мыши узел Web Pages в окне Projects и выбрав New > Visual Web JSF Page.
- Откройте стартовую страницу (страницу со значком стрелки
) в Visual Designer.
- Перетащите компонент Hyperlink на страницу, напечатайте
Next Page, и нажмите Enter.
- В окне Properties компонента Hyperlink нажмите кнопку с многоточием
, для свойства url выделите другую страницу проекта, нажмите OK. Обратите внимание, как IDE установила свойство url в /faces/page-name.jsp.
- Нажмите F6 чтобы построить и выполнить веб приложение.
- Наблюдайте за сообщениями, которые появляются в окне Output во время процесса построения. Обратите внимание так же на то, что вывод логики действий сервера появляется на вкладке сервера.
- Обратите внимание на URL, который IDE посылает в браузер.
- Когда в браузере появится стартовая страница, щелкните ссылку Next Page.
-
Вернитесь в IDE, в окне Services расширьте Servers, расширьте узел сервера, а затем расширьте Applications > Web Applications и обратите внимание, что здесь есть узел для Вашего проекта, как показано на следующем рисунке.
Для дополнительной информации
- Выберите из главного меню Help > Help Contents чтобы открыть помощь. Затем на панели Contents выберите Web Applications > Creating Web Applications > About Creating Web Applications.
Соединение Веб Страниц и Выполнение Действий Пользователя
Когда пользователь печатает URL, щелкает ссылку или щелкае кнопку, браузер посылает на сервер запрос. Сервер помещает запрос на страницу JSP и использует эту страницу JSP и связанный с этой страницей бин для предоставления ответа.
Вы можете задать навигацию по страницам одним из двух путей:
- Вы можете добавить на страницу компонент ссылки, такой как, компонент Hyperlink, или добавить сомпонент Tree Node в компонент Tree, или компонент Tab в компонент Tab Set. Затем установите свойство
url компонента в /faces/page-name.jsp. Когда Вы используете свойство url для навигации, данные формы не передаются. Веб приложение просто переходит по назначению.
- Вы используете редактор Плавающих Страниц (Page Flow) для размещения действий на стрницах, а Визуальный Конструктор (Visual Designer) и редактор Исходного кода (Java Source editor) для создания методов обработки действий. Когда Вы используете методы обработки дейсвий для навигации по страницам, данные формы передаются и обрабатываются до того, как веб приложение перейдет к заданному назначению.
Для доступа к редактору Page Flow щелкните правой кнопкой мыши задний план в Visual Designer и выберите Page Navigation.
Редактор Page Flow показывает ярлыки
для всех страниц проекта. Когда Вы щелкаете элемент + на ярлыке страницы в редакторе Page Flow, ярлык расширяется и показывает все свои компоненты с действиями, а именно компоненты, у которых есть свойство действия (action), такие, как Button, Hyperlink, или Tab. Далее, у каждого компонента есть порт соединения. На рисунке ниже порт соединения гиперссылки представлен в виде цепочки, а для кнопки он показан как стрелка. Вы перетаскиваете порт соединения на ярлык страницы для создания карты действий между запросом и страницей, которая будет предоставляться в качестве ответа на запрос. Когда Вы отпустите кнопку мыши, IDE добавит визуальное представление этого соединения, как показано на соединении, обозначенном nextPage, на следующем рисунке.
Примечание: Когда страница передается, веб приложение выполняет преобразования (conversions) и проверки правильности (validations) прежде, чем приступит к исполнению методов действий. Если преобразования и проверки правильности неудачны, методы действий не вызываются. Поместите компоненты Message Group на странницу во время конструирования, чтобы вы могли прехватить любые неожиданные ошибки преобразования и проверки правильности, которые могут препятствовать выполнению метода действия.
Попробуй
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
- Создайте две страницы с именами Page1 и Page2. Щелкните правой кнопкой мыши Page1 и выберите Set As Start Page чтобы сделать ее стартовой страницей.
- Перетащите компонент Hyperlink на Page1, напечатайте
Next Page, и нажмите Enter.
- Перетащите компонент Кнопка (Button), напечатайте
Go и нажмите Enter.
-
Дважды щелкните компонент Button для доступа к его методу action .
Заметьте, что метод action возвращает null. Когда метод action возвращает null, приложение просто повторно отображает страницу.
- Щелкните Design в панели инструментов для переключения на Visual Designer.
- В Visual Designer щелкните правой кнопкой мыши задний план страницы Page2 и выберите Page Navigation.
- В редакторе Page Flow щелкните ярлык для Page1.jsp для расширения ярлыка страницы, а затем перетащите ссылку от порта соединения компонента hyperlink1 на ярлык для Page2.jsp.
- Щелкните дважды надпись соединения case1 для перехода в режим редактирования, напечатайте
nextPage и нажмите Enter.
- Используйте подобные шаги для создания соединения от кнопки на странице Page2.jsp обратно к LinkPage1.jsp, и назовите соединение
go.
- Щелкните XML на панели редактора чтобы посотреть XML в том виде, как он будет развернут на сервере, а затем закройте Page Flow редактор и щелкните Save когда появится вопрос, сохранить ли изменения.
-
Дважды щелкните компонент Button на странице Page2 для доступа к его методу action .
Заметьте, что метод action возвращает теперь строку "go". Размещение, которое Вы сейчас создали в редакторе Page Flow заставляет сервер отображать LinkPage1.jsp если Page2.jsp возвращает "go."
- Нажмите F6 для выполнения приложения и попробуйте теперь новую навигацию по страницам.
Для дополнительной информации
Редактирование Java Кода
В IDE в редактор Java кода включены все возможности по облегчению процесса программирования, многие из которых нужно обсудить теперь в этой вводной обучающей программе. Если щелкнуть внутри окна редактора Java кода и нажать F1, Вы получите помощь по большинству характеристик данного редактора.
Следующее описание посвящено некоторым наиболее полезным характеристикам редактора.
-
Завершение кода. Завершение кода позволяет Вам напечатать только нескролько букв а затем выбрать из списка возможных классов, методов, переменных и т.п., и, таким образом, автоматически завершить выражение. Для отображения панели завершения нажмите Ctrl-Space. Панель завершения кода появляется также когда Вы делаете паузу после ввода точки после имени пакета, переменной или вызова метода, как показано на следующем рисунке.
- Javadoc. Возможность завершения кода показывает также любые связанные Javadoc. Кроме того, Вы можете щелкнуть правой кнопкой мыши тип, поле или метод и выбрать Show Javadoc чтобы увидеть Javadoc для этого элемента, если Javadoc доступен. Чтобы увидеть доступные Javadoc, выберите Help > Javadoc References. Можно также нажать Shift-F1 для отображения инструмента Javadoc Index Search.
- Fix Imports. Нажмите Ctrl-Shift-I для автоматического добавления необходимой инструкции импорта.
Error detection. Красные квадратики ошибок появляются на левой полосе для всех инструкций, которые не компилируются. Подведите мышь поверх квадратика чтобы увидеть описание ошибки, как показано на следующем рисунке. IDE также показывает на правой полосе черточку ошибки. Эта черточка представляет весь файл, а не только строки кода, которые видно. Красные линии на полосе ошибок показывают на ошибки в коде. Щелкните дважды красную линию для перехода к ошибочной инструкции. Когда Вы компилируете файлы, все ошибки компилирования появляются в окне Output. Щелкните сообщение об ошибке для отображения ошибочного кода в редакторе кода Java.
Java Editor Keyboard Shortcuts (Клавишные сокращения). Вы можете выполнить многие общие задачи редактирования с использованием простых комбинаций клавиш, как показано в следующих примерах. Чтобы узнать больше о клавишных сокрашениях, выберите из главного меню Help > Help Contents для открытия окна помощи, а затем в панели Contents выберите IDE Basics > Keyboard Shortcuts > Editor Shortcuts.
| Дейсвие |
Клавишное сокращение |
| Форматирование кода |
Alt-Shift-F |
| Удаление текущей строки |
Ctrl-E |
| Переместить точку вставки к подсвеченной сопоставленной (парной) скобке |
Ctrl-[ |
| Выделить блок между парными скобками |
Ctrl-Shift-[ |
Code Templates (Шаблоны кода) . Шаблоны кода - это группы букв, которые расширяются в целое слово или фразу после нажатия клавиши пробела, как показано в следующих примерах. Чтобы увидеть полный список шаблонов кода, выберите Tools > Options в системе Microsoft Windows или NetBeans > Preferences в системе Macintosh , а затем выберите Basic Options > Editor > Code Templates и нажмите кнопку многоточия
для просмотра свойства Code Templates. Несколько примеров:
| Код |
Сокращение |
for (Iterator it = collection.iterator(); it.hasNext();)
{Object elem = (Object) it.next();} |
forc |
for (int i = 0; i < arr.length; i++) {} |
fori |
try {|} catch (Exception ex)
{log("Error Description", ex); } finally {} |
trycatch |
Code Clips (Скрепки Кода).Когда у Вас открыт редактор кода Java, окно Palette предоставляет много полезных скрепок кода, которые Вы можете перетащить и вставить в ваш файл исходного кода. Скрепки кода не появляются для исходных файлов управляемых бинов, таких, как исходный файл бина приложения (application bean) или бина запроса (request bean).
Примечание: Если Вы щелкните в панели инструментов JSP для открытия редактора JSP , Вы увидите JavaScript tooltips в окне Palette для тех элементов, которые можно использовать в файле JSP.
- Quick Search (Быстрый Поиск). Если щелкнуть окно Navigator и начать печатать имя метода или поля, появится панель диалога Быстрого Поиска (Quick Search) и IDE подсветит первый подходящий элемент в списке. Нажмите Enter для позиционирования редактора Java на исходном коде объявления данного элемента.
Попробуй
Примечание: В следующих упражнения Вы должну печатать свой код в метод destroy. Код, который Вы напечатаете, предназначен только для иллюстрации возможностей редактировани. В действительности Вы не должны помещать подобный код в этот метод. После прохождения всех шагов обучения Вы должны удалить этот код.
- Создайте страницу или откройте существующую. Вставьте компонент Hyperlink на страницу. Щелкните Java на панели редактирования для отображения исходного кода Java.
- Щелкните правой кнопкой мыши левую полосу и выберите Show Line Numbers. Нажмите Ctrl-G в исходном коде Java, напечатайте 100 в панели диалога Go To Line и нажмите Enter.
- Щелкните вкладку окна Navigator , затем дважды щелкните
destroy() для позиционирования исходного кода на этом методе. В методе destroy() напечатайте getSessionBean1(). и сделайте паузу. Появится панель Code Completion. Напечатайте d и увидите, как список сузится до destroy(). Нажмите Enter для использования данного выделения. Нажмите Ctrl-Space. Теперь напечатайте this.getH, и задержитесь для вызова панели Code Completion. Переместите курсок ниже к getHyperlink1() и нажмите Enter. Напечатайте точку, подождите панель Code Completion, напечатайте set. После того, как панель Code Completion сузит список методов до таких, которые начинаются с set, напечатайте te для сужения спика до setText(Object text) и нажмите Enter. IDE вставит setText() после точки и расположит курсор внутри скобок. Напечатайте "hello", нажмите End и напечатайте ;.
- Начните новую строку, напечатайте
serr и нажмите Tab для расширения клавишного сокращения до System.err.println(""). Удалите точку с запятой в конце строки. Нажмите F9 для компилирования файла. Окно Output отображает несколько ссылок на ошибки. Щелкните первую ссылку, которая появилась в окне. IDE отобразит инструкцию, которая вызвала ошибку. Восстановите точку с запятой, которую Вы только что удалили.
- Начните новую строку, напечатайте
getSes и нажмите Ctrl-K. IDE заменит строку с первым совпадающим словом с исходным кодом, приведенным выше, на текущую строку.
- Для очистки этого кода, поместите курсор на первой строке тела метода
destroy и нажмите Ctrl-E для удаления этой строки. Используйте Ctrl-E для удаления остальных строк тела метода.
- Наведите (мышь) на ярлыки панели редактирования и попробуйте каждый, что он дает.
- Щелкните правой кнопкой мыши исходный код Java и выберите из выпадающего меню Code Folds. Попробуйте разные действия из подменю.
- Попробуйте перетащить скрепки кода из Palette и посмотрите, что получится.
Для дополнительной информации
- Выберите из главного меню Help > Help Contents чтобы открыть окно помощи, затем в панели Contents выберите Java Applications > Editing Source Files > About Editing Source Files.
- Выберите из главного меню Help > Help Contents чтобы открыть окно помощи, затем в панели Contents выберите IDE Basics > Keyboard Shortcuts > General Editor Shortcuts.
- The Java Editor Users Guide FAQ
Обработка Пользовательского Ввода
IDE обеспечена объектами проверки правильности (validator) и преобразования (converter) для облегчения контроля и форматирования ввода. Эти объекты можно найти в соответствующих разделах палитры.
Вы можете встроить validator в компонент ввода, такой, как компонент Text Field, вставив validator в компонент ввода. Например, после добавления компонента Text Field на страницу в Visual Designer, Вы можете перетащить Length Validator из секции Validators Палитры и вставить его в Text Field.
Или по другому, Вы можете вставить validator на страницу и установить свойство validator компонента ввода в объект validator. Например, Вы можете вставить Long Range Validator на пустое место на странице, что добавит longRangeValidator1 в окне Navigator. Затем, Вы можете выделить компонент ввода в Visual Designer, такой как компонент Text Field, и выбрать longRangeValidator1 из его выпадющего списка свойств validatorExpression. Можно выбрать один и тот же validator для более одного компонента.
Подобный механизм существует и для преобразователей. Пребразователи можно сопоставить также с комонентами вывода, такими как Static Text компонент. Заметьте, что когда вы связываете компонент с полем поставшика данных, преобразование осуществляется автоматически. О связывании с поставщиками данных Вы узнаете в секции Connecting to Databases.
Используйте окно Свойств компонента validator для задания правил проверки, таких как минимальная и максимальная величина или минимальная и максимальная длина. Подобным образом используйте окно Свойств компонента converter для задания правил преобразования, таких как шаблон, которому величина должна сопоставляться, или метод, который будет вызываться для проверки. У компонента Number converter есть специальный мастер, который появляется когда Вы вставляете Number Converter на страницы или в визуальный компонент.
Секция Basic Палитры предоставляет компонент Message и компонент Message Group для автоматического отображения ошибок преобразования, ошибок проверки правильности и сообщений обязательных полей. Компонент Message Group отображает общие сообщения об ошибках, ошибках периода выполнения и , необязательно, сообщения об ошибках всех компонентов. Компонент Message отображает сообщения только для того компонента, в который он встроен. Вы связываете компонент Message с другим компонентом устанавливая свойство for компонента Message или нажимая Ctrl-Shift на компоненте Message и перетаскивая его мышью на компонент, с которым нужно связать компонент Message.
Можно программно послать нужное сообщение об ощибке в компонент Message Group используя методы error, warn, fatal и info в любом Page Bean. Чтобы узнать больше об этих методах, выберите Tools > Javadoc Index Search, напечатайте FacesBean в текстовое поле для выпадающего списка, и нажмите Find.
Попробуй
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
- Создайте страницу и перетащите кнопку на страницу. Установите текст кнопки в
Go.
- Перетащите на страницу компонент Text Field. В окне свойств компонента Text Field выделите флажок свойства
required.
- Перетащите компонент Label выше компонента Text Field, напечатайте
Price: и нажмите Enter.
- В окне Свойства компонента Label выделите textField1 из выпадающего списка свойства
for. Заметьте, как label в Visual Designer показывает звездочку для обозначения, что ввод требуется для объединенного с ним компонента Text Field.
-
Расширьте секцию Validators в Палитре. Перетащите Double Range Validator и вставьте его в компонент Text Field. В окне Navigator выделите узел вновь созданного doubleRangeValidator1. В окне Properties для validator задайте максимум 10.0 и задайте минимум 1.0, как показано на следующем рисунке.
-
Расширьте секцию Converters в Палитре. Перетащите Number Converter и вставьте его в компонент Text Field. Появится панель диалога Number Format, как показано на следующем рисунке. Выделите currency из выпадающего списка Type, выделите English (United States) из выпадающего списка Locale, нажмите OK.
-
Добавьте на страницу компонент Message. Нажмите Ctrl-Shift на этом компоненте и перетащите его на компонент Text Field.
Заметьте, что IDE установила свойство for компонента Message в указатель (id) компонента Text Field.
- Добавьте на страницу компонент Message Group.
-
Сделайте страницу стартовой и выполните приложение. Попробуте нажать кнопку если price (цена) не введена, если введена 1.5 , если величина не число, и если a цена больше, чем $10.00. Наконец, напечатайте $1.50 в текстовое поле и нажмите кнопку.
Заметьте, как приложение отбрасывает все величины, которые не соответствуют числовому формату и не попадают в заданную область. Заметьте, что в компонентах Message и Message Group появляются разные сообщения.
- Поэкспериментируйте с установкой флажка
showGlobalOnly для компонента Message Group.
Для дополнительной информации
Сохранение и Перадача Данных
Для запоминания информации, чтобы использовать ее на других страницах, нужно применить Application Bean (Бин Приложения), Session Bean (Бин Сессии), и Request Bean (Бин Запроса).
- Применяйте Application Bean для информации, которой пользуются все пользовательские сессии, такую, как статический список элементов в компоненте Drop Down.
- В Session Bean запоминайте информацию для использования другими страницами для всей пользовательской сессии, такой, как имя входа пользователя (login).
-
Если иформация нужна только для использования на следующей странице, применяйте Request Bean.
Любая величина, которую вы запомнили в Request Bean, исчезнет, как только запрос окончится. Запросом является одна пересылка HTTP запроса от клиента серверу, плюс сопровождающий ответ, которым может быть другая страница. В большинстве случаев запрос начинается с щелканья кнопки или ссылки, и оканчивается когда будет отобрабражена ответная страница HTML.
Примечание: Образец Бина Запроса (Request Bean) создается только если запрос вызывает запоминание величин в свойствах Бина Запросов, таких, как всторенный в свойство Бина Запросов компонент ввода, что будет обсуждаться ниже.
Предупреждение: Вы не должны использовать Request Bean если включили элемент<redirect> внутрь элемента <navigation-case> правила навигации. (Вы видите эти правила когда щелкаете кнопку Source в редакторе Page Flow.) Когда страница подтверждается (пользователем), элемент <redirect> перенаправляет страницу и завершает бин запроса раньше, чем последующая страница сможет воспользоваться какими-либо величинами из Request Bean.
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
Чтобы добавить свойство в Бин Сессии (Session Bean):
Щелкните дважды узел SessionBean1 в окне Navigator.
Откроется SessionBean1.java в редактор Java.
- Добавьте свойство
answer в конструктор public class SessionBean1 extends AbstractSessionBean.
- Добавьте инструкции импорта, если нужно.
-
Щелкните правой кнопкой мыши редактор и выберите Refactor > Encapsulate Fields. В завершающем диалоге создайте метод getter если свойство Только для Чтения (Read Only), и оба метода getter и setter если свойство для Чтения/Записи (Read/Write).
Свойство появляется как подузел под SessionBean1 в окне Navigator, но обычно не сразу.
Ипользуйте подобные шаги для добавления свойства в Request Bean или в Application Bean. Дополнительную информацию смотри в FAQ How do I add properties to managed beans in NetBeans IDE?
Примечание: Вы можете также добавить свойство в бин страницы (в backing bean, который IDE создает для каждой страницы). Чтобы добавить свойство в бин страницы, откройте java код страницы и добавьте объявление свойства в конструктор public class Page1 extends AbstractPageBean, и изолируйте (инкапсулируйте, encapsulate) поля как описано выше. Величина свойства бина страницы существует пока существует образец бина страницы. Например, если пользователь щелкает компонент Button, который повторно выводит страницу (то есть, метод action возвращает null), создается новый образец бина страницы и величины свойств бина страницы создаются заново. Если Вы хотите передать величину в postback, используйте компонент Hidden Field.
Чтобы сопоставить компонент со свойством бина, Щелкните правой кнопкой этот компонент и выберите Bind to Data. В диалоговой панели Bind to Data dialog box выделите вкладку Bind to Object и выберите свойство бина, как показано на следующем рисунке.
Примечание: Для большинства компонентов выпадающее меню снабжено двумя действиями actions: Связывание со Свойством (Property Bindings) и Связывание с Данными (Bind to Data). Панель диалога Property Bindings позволяет Вам связать большинство свойств компонента с управляемым свойством бина или с полем поставщика данных. Панель диалога Bind to Data - это короткий путь для связывания содержащего величину свойства компонента с управляемым свойством бина или полем поставщика данных. Используйте вкладку Bind to Data Provider для связывания с любым поставщиком данных, которого Вы добавляете на страницу или в управляющий бин. Используйте вкладку Bind to an Object для связывания со свойством страницы или со свойством управляющего бина.
Попробуй
-
Добавьте свойство в RequestBean1.java: Назовите свойство parm, сделайте его String и разрешите пользователям доступ чтение/запись.
Заметьте, что вновь созданное свойство может не появиться в окне Navigator. Для появления свойства щелкните правой кнопкой мыши Visual Designer и выберите из выпадающего меню Refresh. Можно так же открыть и сохранить файл исходного кода RequestBean1 для появления свойства, что Вы и сделаете при следующих шагах.
- Закройте и сохраните файл.
- Создайте страницу с названием First с компонентом Button и с компонентом Text Field.
- Щелкните правой кнопкой компонент Text Field и выберите из выпадающего меню Bind to Data. Щелкните вкладку Bind to an Object, выделите RequestBean1 > parm, нажмите OK.
- Создайте страницу с название Next. Добавьте компонент Button и компонент Static Text.
- Свяжите компонент Static Text на странице Next с RequestBean1 > parm, используя те же самые шаги, что и для компонента Text Field на странице First.
- Щелкните правой кнопкой мыши задний план и выберите из выпадающего меню Page Navigation.
- В редакторе Page Flow editor создайте соединение Button на странице First со страницей Next. Оставьте компонент Button на странице Next свободным, потому что мы хотим, чтобы эта кнопка просто заставляла страницу Next повторно вызывать себя.
- Установите First.jsp стартовой страницей и выполните приложение. Введите величину и щелкните кнопку. Заметьте, что страница Next отображает величину, которую Вы ввели на странице First. Позади сцены создается образец RequestBean1 для запоминания величины компонента Text Field в свойстве parm. Величина свойства parm в свою очередь отыскивается для ответа ( HTML для страницы Next). Как только ответ завершен, образец RequestBean1 был разрушен.
- Щелкните кнопку на странице Next чтобы засавить страницу Next повторно вызвать себя. Заметьте, что теперь компонент Static Text уже не показывает величину. Так происходит потому, что образец RequestBean1, который содержал величину, жил столько, сколько прошло от начала запроса и подтверждения страницы First, и до того, как HTML для страницы Next был отправлен назад клиенту.
Для дополнительной информации
Соединение с Базами Данных
Окно Services включает узел Databases, показывающий все базы данных, зарегистрированные в IDE, как показано на следующем рисунке. NetBeans IDE снабжена примером базы данных TRAVEL, которую вы используете в последней части нашей обучающей программе.
Прежде чем Вы получите доступ к базе данных из проекта, Вы должны сначала соединить IDE с базой данных. Это нужно делать всякий раз, когда Вы стартуете IDE и открываете проект, который должен быть соединен с базой данных.
Если значок базы данных разорван
и Вы не можете расширить узел базы данных, значит IDE не присоединилась к базе данных. Чтобы содиниться с базой данных TRAVEL, щелкните правой кнопкой узел базы данных в окне Services и выберите Connect из выпадающего меню. Если появится панель диалога Connect, введите travel для Password и выделите Remember Password During This Session.
Когда Вы открываете существующий проект, Visual Designer может показывать экран ошибок. Скорее всего это происходит потому, что для Visual Designer нужно получить информацию от базы данных, но IDE не соединилась с базой данных. Попробуйте соединиться с сервером базы данных и нажать кнопку Continue для решения этой проблемы.
Соединить страницу с таблицей базы данных можно перетащив таблицу из секции источников данных и вставив ее либо в компонент либо в страницу. Когда Вы делаете это, IDE добавляет поставщика данных (data provider) на страницу и набор строк (rowset) в класс SessionBean1, как показано на следующем рисунке.
Объект rowset производит соединение с базой данных, исполняет запросы (queries), и управляет набором результатов (result set). Объект data provider предоставляет общий интерфейс для доступа к многим типам составных данных: из таблиц баз данных, объектов ArrayList , объектов Enterprise JavaBeans. Обычно Вы работаете с объектом rowset только в то время, когда нужно установить параметры запроса. В большинстве случае можно пользоваться для доступа и манипуляций данными объектом data provider.
Раз Вы добавили в проект data provider, Вы можете связать компонент с data provider щелкнув правой кнопкой мыши и выбрав Bind to Data. В панели диалога Bind to Data щелкните вкладку Bind to Data Provider для вызова ее на пердний план. Выпадающий список Choose a Data Provider показывает всех поставщиков данных, в котором Вы можете выделить data provider для связывания с компонентом. После выделения поставщика данных выберите столбец данных для связывания с компонентом. Для некоторых компонентов, таких как компонент Drop Down List, нужно выбрать и поле для Value и поле для Display.
Чтобы определить запрос SQL, который выдает данные, используйте Редактор Запросов (Query Editor), как показано на следующем рисунке. Вы получаете доступ к этому редактору с помощью объекта rowset.
Попробуй
- Создайте страницу, сделайте ее стартовой и разместите на ней компонент Listbox
- В окне Services засширьте Databases, расширьте узел jdbc для базы данных TRAVEL, и расширьте узел Tables.
-
Перетащите на страницу узел TRIPTYPE.
Примечание: Если значок базы данных TRAVEL разорван и Вы не можете раширить узел базы данных, значит IDE не присоединелась к базе данных. Чтобы содиниться с базой данных TRAVEL, щелкните правой кнопкой узел базы данных в окне Services и выберите Connect из выпадающего меню. Когда появится панель диалога Connect, введите travel для Password и выделите Remember Password During This Session.
- Щелкните правой кнопкой компонент Listbox и выберите из выпадающего меню Bind to Data.
- В диалоге Bind to Data щелкните вкладку Bind to Data Provider для вызова ее на пердний план и проделайте выделение tripTypeDataProvider в выпадающем списке Choose a Data Provider.
- Установите Поле Value в TRIPTYPE.TRIPTYPEID (выделено по умолчанию) и установите Поле Display в TRIPTYPE.DESCRIPTION. Щелкните OK.
- Выполните приложение чтобы увидеть, как listbox заполняется данными из таблицы.
- Расширьте SessionBean1 в окнеNavigator и щелкните правой кнопкой мыши узел triptypeRowSet чтобы открыть его в Редакторе Запросов (Query Editor). В сторке DESCRIPTION сетчатой панели щелкните столбец Sort Type и выберите Ascending из выпадающего списка.
- Щелкните X на вкладке Query Editor, подписанной наподобие jdbc:derby://localhost:1527/travel, чтобы закрыть Query Editor, и выполните программу опять. Заметьте, как теперь элементы появляются в алфавитном порядке.
-
(Можно не делать) Посмотрите на метод _init в исходном коде Java страницы чтобы увидеть код, который сопоставляет поставщика данных (data provider) с набором строк (rowset). Этот метод свернут (folded) по умолчанию. Чтобы развернуть код, щелкните квадратик свертки кода, который появляется около левой полосы.
Щелкните дважды узел Source Packages > gettingstarted > SessionBean1 в окне Projects, чтобы открыть исходный код Java source для бина сессии. Взгляните на метод _init бина сессии чтобы видеть, как код rowset подставляет себя запросу.
Для дополнительной информации
Отлаживание Веб Приложений
IDE имеет встроенный отладчик (debugger) для помощи в поиске неисправностей в Ваших программах, как показано на следующем рисунке. Его можно использовать для установки прерываний (breaks) и наблюдений (watches), для пошагового исполнения кода, и для выполнения (программы) до тех пор, пока она не достигнет инструкции, на которой стоит курсор.
Установить Точку Прерывания (breakpoint) можно щелкнув левую полосу в Редакторе Java. Наблюдение (watch) устанавливается путем щелчка правой кнопкой мыши переменной или выражения и выбора New Watch. Для выполнения отладчика либо выберите Run > Debug Main Project, либо Run > Run to Cursor из главного меню.
Совет: Существуют некоторые другие возможности, которые Вы можете использовать для дигностирования и решения проблем:
- Используйте HTTP Monitor для наблюдения за передачами сообщений клиент-сервер и для повторных запросов HTTP. Возможность повторять запросы может помочь если Ваша страница содержит несколько полей ввода, и Вы хотите повторить запрос HTTP без заполнения всех полей.
- Добавьте компонент Message Group на страницу и используйте методы
error, warn, fatal, и info для отбображения диагностических сообщений в этом компоненте.
- Используйте метод
log для отправления диагностических сообщений в серверный log.
Попробуй
Примечание: NetBeans IDE 6.1 и 6.5 имеет возможность связывания по требованию. Там, где компоненты требуют программирования на Java (Java coding), Вы теперь можете вручную добавить связываемый атрибут к компонентам приложения Visual Web JSF. Чтобы сделать это, щелкните правой кнопкой мыши нужный компонент и выберите Add Binding Attribute. Дополнительную иформацию смотрите на On-demand Binding Attribute Wiki.
- Создайте стартовую страницу или воспользуйтесь существующей. Добавьте компонент Static Text, установите его свойство
text в Hello, установите его свойство указатель (id) в helloText.
-
Добавьте компонент Button. Дважды щелкните компонент Button для доступа к его методу action (button1_action) и замените тело метода следующим кодом.
| Code Sample 1: button1_action Method |
String oldString = (String) this.helloText.getText();
this.helloText.setText("Good Bye");
String newString = (String) this.helloText.getText();
return null;
|
Можно нажать Alt-Shift-F для переформатирования только что добавленного кода.
Щелкните правой кнопкой мыши oldString, выберите New Watch, и щелкните OK. То же самое сделайте для newString.
Вы увидите, что вкладка окна Watches откроется внизу IDE, и каждое выражение, которое будет подвержено наблюдению (to be watched), перечислено в окне.
Щелкните левую полосу для установки точки прерывания на первой инструкции тела метода.
Вы увидите появившийся розовый квадратик в месте щелчка и розовый задний план для всей строки.
- Выберите в главном меню Run > Debug Main Project.
- Когда в браузере появится стартовая страница, щелкните кнопку. Когда отладчик остановится на методе
button1_action, щелкните вкладку Watches в окне Debugger чтобы видеть текущие величины newString и oldString.
- Выберите Run > Step Over из главного меню или щелкните кнопку Step Over
в панели инструментов. Посмотрите на вкладку Watches. Выполните перешагивание кода (Step over) больше двух раз и проследите за столбиком Value на вкладке Watches.
- Изучите вкладки Local Variables и Call Stack.
- Выберите Run > Finish Debugger Session для закрытия сессии отладки.
Для дополнительной информации
- Выберите из главного меню Help > Help Contents чтобы открыть окно помощи, затем в панели Contents расширьте Java Applications > Debugging Applications, и прочитайте статью по отладке.
- Выберите из главного меню Help > Help Contents чтобы открыть окно помощи, затем в панели Contents выберите IDE Basics > Servers and Databases > HTTP Monitor > About the HTTP Monitor.
- Секция Выполнение и Проверка Приложений (Running and Monitoring the Application) в учебном пособии NetBeans IDE Tutorial for Web Applications.
Итоги