В этом практикуме подключимся к БД, построим древовидное меню, и др.
Для подключения к БД будем использовать БД Oracle XE. Который можно поставить локально и использовать схему из поставки HR.
Сразу хочу заметить, для работы с Oracle XE, для Weblogic необходимо указать в файле
C:\Users\arylkov\AppData\Roaming\JDeveloper\system11.1.2.3.39.62.76.1\DefaultDomain\bin\setDomainEnv.cmdрегиональные настройки
set JAVA_OPTIONS=%JAVA_OPTIONS% -Duser.region=us -Duser.language=en
Для проекта Model1 создадим новое БД подключение
Перед тем как будет предложен импорт, необходимо выбрать mapping типов БД на типы Java. Будем использовать mapping "Java Extended for Oracle".
Такой mapping можно сделать один раз на проект.
Подготовим структуру, данные для построения древовидного меню.
выполним скрипт через SQLPlus. > @file.sql
Теперь можно выбрать таблицу, затем для нее сделать запрос. Таблицы и запросы лучше разносить по разным пакетам. Таблица - это Entity Object (EO), описание типа объекта БД, создается для всех сессий в одном экземпляре. Запрос View Object (VO), это уже экземпляр набора данных, создается свой для каждой сессии.
По умолчанию будет предложено создание Application module, это контейнер в котором будут размещены все логически связанные VO.
Для VO - MenuView делаем ViewLink
Это описание отношения между разными или одним и тем же VO. В случае нашего дерева, это отношение между ID и PID - MenuView.
Теперь можно перейти на "Data Controls" и переащить на форму main.jsff в левый фасет (область), и при отпускании выбрать "ADF Tree"
Настроить этот компонент следующим образом:
Обратите внимание на добавление отношения через "+"
Вернемся к VO MenuView и добавим ViewCriteria.
Это подготовленные декларативно условия where, которые затем можно программно или декларативно использовать. В этом условии отберем только root узлы. Для того что бы например декларативно применить условие, можно открыть Application Module и в нем уже выбрать редактирование VO
Теперь если запустить приложение http://127.0.0.1:7101/myadf/faces/index , то откроется форма авторизации, после чего попадем на форму (main) и в левом углу будет меню, которое можно раскрывать, закрывать :-).
Источник:
Using Trees to Display Master-Detail Objects
http://docs.oracle.com/cd/E16162_01/web.1112/e16182/web_masterdetail.htm#BJEFHDIJ
Исходный код
Для подключения к БД будем использовать БД Oracle XE. Который можно поставить локально и использовать схему из поставки HR.
Сразу хочу заметить, для работы с Oracle XE, для Weblogic необходимо указать в файле
C:\Users\arylkov\AppData\Roaming\JDeveloper\system11.1.2.3.39.62.76.1\DefaultDomain\bin\setDomainEnv.cmdрегиональные настройки
set JAVA_OPTIONS=%JAVA_OPTIONS% -Duser.region=us -Duser.language=en
Для проекта Model1 создадим новое БД подключение
После чего импортируем таблицу БД - "Menu" (таблица дана ниже в скрипте)
Такой mapping можно сделать один раз на проект.
Подготовим структуру, данные для построения древовидного меню.
create table MENU ( ID NUMBER(10) not null, PID NUMBER(10), NAME VARCHAR2(50 CHAR), TASKFLOW VARCHAR2(250 CHAR) ) ; -- Create/Recreate primary, unique and foreign key constraints alter table MENU add constraint PK_MENU primary key (ID) ; insert into MENU (ID, PID, NAME, TASKFLOW) values (1, null, 'Сотрудники', null); insert into MENU (ID, PID, NAME, TASKFLOW) values (2, 1, 'Менеджеры', null); insert into MENU (ID, PID, NAME, TASKFLOW) values (3, 1, 'Специалисты', null); commit;
выполним скрипт через SQLPlus. > @file.sql
Теперь можно выбрать таблицу, затем для нее сделать запрос. Таблицы и запросы лучше разносить по разным пакетам. Таблица - это Entity Object (EO), описание типа объекта БД, создается для всех сессий в одном экземпляре. Запрос View Object (VO), это уже экземпляр набора данных, создается свой для каждой сессии.
По умолчанию будет предложено создание Application module, это контейнер в котором будут размещены все логически связанные VO.
Для VO - MenuView делаем ViewLink
Это описание отношения между разными или одним и тем же VO. В случае нашего дерева, это отношение между ID и PID - MenuView.
Теперь можно перейти на "Data Controls" и переащить на форму main.jsff в левый фасет (область), и при отпускании выбрать "ADF Tree"
Настроить этот компонент следующим образом:
Обратите внимание на добавление отношения через "+"
Вернемся к VO MenuView и добавим ViewCriteria.
Это подготовленные декларативно условия where, которые затем можно программно или декларативно использовать. В этом условии отберем только root узлы. Для того что бы например декларативно применить условие, можно открыть Application Module и в нем уже выбрать редактирование VO
Теперь если запустить приложение http://127.0.0.1:7101/myadf/faces/index , то откроется форма авторизации, после чего попадем на форму (main) и в левом углу будет меню, которое можно раскрывать, закрывать :-).
Источник:
Using Trees to Display Master-Detail Objects
http://docs.oracle.com/cd/E16162_01/web.1112/e16182/web_masterdetail.htm#BJEFHDIJ
Исходный код
Комментариев нет:
Отправить комментарий