Создание серверных приложений
Компонент IXPAGEPRODUCER
Для реализации доступа к данным можно использовать компоненты страницы InternetBeans палитры компонентов.
На вкладке Design окна редактора следует добавить в окно структуры компонент IxPageProducer со страницы InternetBeans палитры компонентов.
Объект ixPageProducer1 будет помещен в секцию Other окна структуры (рис. 14.2).
При этом в код модуля добавляется строка:
IxPageProducer ixPageProducer1 = new IxPageProducer();
Для определения связи с модулем данных установите значения следующих свойств объекта ixPageProducer1:
- свойство dataModule должно указывать используемый модуль данных (например, DataModule11 );
- свойство htmlFile должно определять имя HTML-файла, содержащего шаблон.
Обратите внимание, что свойство rootPath автоматически будет установлено равным полному пути к указанному имени HTML-файла.
Одновременно с этим в код модуля будет добавлен вызов метода ixPageProducer1.setHtmlFile("C:\\ File1.html");.
Компонент IXCONTROL
Компонент IxControl позволяет устанавливать связь между элементом управления HTML-страницы и полем набора данных.
На вкладке Design окна редактора следует добавить в окно структуры компонент IxControl со страницы InternetBeans палитры компонентов.
Объект ixControl1 будет помещен в секцию Other окна структуры.
Одновременно с этим в код модуля добавляется следующая строка:
IxControl ixControl1 = new IxControl();
Для связывания элемента управления с полем набора данных установите значения следующих свойств объекта ixControl1:
- свойство dataset должно указывать используемый набор данных (например, customer );
- свойство columnName должно определять имя поля набора данных;
- свойство pageProducer должно указывать компонент типа IxPageProducer (например, ixPageProducer1 );
- свойство controlName должно определять элемент управления формы и устанавливается равным атрибуту name тега input.
Для каждого поля набора данных следует добавить свой компонент типа IxControl.
Обработка событий
Компонент IxControl может выполнять обработку событий. Так, если данный компонент связан с командной кнопкой Submit, то для обработки события следует перейти на вкладку Events и создать обработчик события submitPerformed.
Например:
ixControl2.addSubmitListener(new com.borland.internetbeans.SubmitListener() { public void submitPerformed(SubmitEvent e) { ixControl2_submitPerformed(e); } }); : void ixControl2_submitPerformed(SubmitEvent e) { }
Вставьте в тело метода обработчика события submitPerformed следующий код:
// Запрос текущего модуля данных: DataModule1 dm = (DataModule1) ixPageProducer1.getSessionDataModule(e.getSession()); // передача и сохранение данных, введенных пользователем, // в источнике данных, определенным модулем данных: dm.getCustomer().post(); dm.getCustomer().saveChanges(); // Метод getCustomer - это автоматически сформированный метод модуля //данных DataModule1.java, возвращающий объект типа QueryDataSet
Методы post и saveChanges класса QueryDataSet используются для передачи и сохранения изменений в базе данных.
Компонент IXTABLE
Компонент IxTable определяет динамически генерируемый набор данных.
Для определения набора данных установите значения следующих свойств объекта IxTable:
- свойство pageProducer должно указывать объект типа IxPageProducer ;
- свойство dataset должно определять набор данных;
- свойство elementId определяет таблицу HTML-файла и устанавливается равным атрибуту id тега table.
Методы DOPOST и DOGET
Методы doPost и doGet кода сервлета используются для обработки HTTP-запроса и формирования возвращаемой HTML-страницы.
При использовании компонента IxPageProducer в тело метода doGet следует вставить только одну строку:
ixPageProducer1.servletGet(this, request, response);
Метод servletGet класса IxPageProducer выполняет следующие начальные действия по обработке GET HTTP-запроса:
- создает для запроса пользователя новый объект типа HttpSession ;
- при необходимости устанавливает тип запроса, соответствующий шаблону;
- предоставляет страницу с динамическим содержанием, записываемую в поток вывода.
При использовании компонента IxPageProducer в тело метода doPost могут быть вставлены следующие строки:
// Получение объекта модуля данных: DataModule1 dm = (DataModule1) ixPageProducer1.getSessionDataModule(request.getSession()); ixPageProducer1.servletPost(this, request, response); // Отображение данных, переданных из формы doGet(request, response);
Метод doPost в данном примере используется для обработки параметров запроса. Для динамического формирования HTML-документа вызывается метод doGet.
Метод servletPost класса IxPageProducer выполняет начальные действия по обработке POST HTTP-запроса и, если была нажата кнопка submit, то вызывает обработчик события submitPerformed.