75
Microsoft .NET Framework Overview Bulgarian Oracle User Group Лектор: Георги Денчев ComSoft Ltd. Разработка на Struts-базирани WEB приложения с Oracle JDeveloper 10g

Лектор : Георги Денчев ComSoft Ltd

Embed Size (px)

DESCRIPTION

Разработка на Struts- базирани WEB приложения с Oracle JDeveloper 10g. Лектор : Георги Денчев ComSoft Ltd. Съдържание. Въведение в Struts Въведение в Oracle Application Development Framework (ADF) Изграждане на примерно Struts - базирано приложение Заключение. Съдържание. - PowerPoint PPT Presentation

Citation preview

Page 1: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Лектор: Георги ДенчевComSoft Ltd.

Разработка на Struts-базирани WEB

приложения с Oracle JDeveloper 10g

Page 2: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts

2. Въведение в Oracle Application Development Framework (ADF)

3. Изграждане на примерно Struts-базирано приложение

4. Заключение

Page 3: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts Какво представлява Struts Ролята на Struts в приложението Основни градивни елементи и класове Основни похвати Поддръжка на Struts в JDeveloper 10g

Page 4: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Какво представлява Struts

Платформа за разработка на WEB приложения

Базиран на стандартни технологии – JavaBeans, Java Servlets, JavaServer Pages (JSP), XML, …

Софтуер с отворен код Плод на усилията на разрастващо се

общество от разработчици

Page 5: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Какво представлява Struts

Реализира MVC (Model-View-Controller) парадигма

Page 6: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts Какво представлява Struts Ролята на Struts в приложението Основни градивни елементи и класове Основни похвати Поддръжка на Struts в JDeveloper 10g

Page 7: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Ролята на Struts в приложението

Controller Всички заявки минават през логическия център

на приложението Лесно се конфигурира през XML файлове Реалната работа се извършва от Action класове,

извиквани от контролера Вграден механизъм за валидация на входните

данни Отлична архитектура и дизайн

Page 8: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Ролята на Struts в приложението

View Няма конкретно обвързване с определена

технология Вградена поддръжка за интернационализация

View (JSP) Вградени библиотеки от тагове за визуализация

Избягва се употребата на скриптлети Улеснява се работата на дизайнерите на

страницата

Page 9: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Ролята на Struts в приложението

Model Няма конкретно обвързване с определена

технология Логиката трябва да се реализира изцяло от

разработчика Съществуват помощни продукти, реализиращи

връзката с базата данни Oracle BC4J Enterprise Java Beans (EJB) Hibernate

Page 10: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts Какво представлява Struts Ролята на Struts в приложението Основни градивни елементи и класове Основни похвати Поддръжка на Struts в JDeveloper 10g

Page 11: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionServlet

Представлява сървлет, който съпоставя определени класове на събития (обикновено HTTP POST заявки)

Предава управлението на подходящ RequestProcessor

Поддръжка на множество модули в рамките на едно приложение

Page 12: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът RequestProcessor

Най-важен в Controller частта на приложението

Предоставя изключително много точки за разширение – гъвкав и мощен

Създава и използва инстанции на Action, ActionForm и ActionForward

Page 13: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът RequestProcessor

Настройва се чрез конфигурационен файл (struts-config.xml) – лесно и бързо

По време на разработката на WEB приложението класовете Action и ActionForm се разширяват в зависимост от конкретната задача

Конфигурационният файл указва по какъв начин да се използват разширените класове

Page 14: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът RequestProcessor

Предимства на подхода Цялата логика на управление на приложението е

в един йерархичен текстов файл улеснява процеса на усвояване, особено при

големи приложения Не е необходимо дизайнерът на страниците да е

запознат с Java код Не е необходима прекомпилация на

приложението

Page 15: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionMapping

ActionMapping съдържа информация за съответствие между събития (HTTP заявки) и определени Action класове

Controller частта на Struts извиква определен Action клас в зависимост от текущата HTTP заявка

RequestProcessor подава ActionMapping обекта на “execute” метода на извикания Action

Това осигурява на Action обекта достъп до логиката на управление на приложението (control flow)

Page 16: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionMapping

От конфигурационния файл “struts-config.xml” се извлича набор от ActionMapping класове

Те се обединяват в общ контейнер – АctionMappings

Page 17: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionForm

Общ модел за данни които се задават или модофицират от HTTP форма (реализира се като JavaBean клас)

Абстрактен клас, който се разширява за всяка различна входна точка за данни в приложението

Множество HTTP заявки могат да бъдат асоциирани с един и същ модел на предаваните данни (ActionForm)

Един и същ ActionForm може да се използва в няколко последователни страници (wizards)

Page 18: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionForm

За всеки параметър XXX който трябва да се извлече от HTTP заявката, ActionForm трябва да дефинира getXXX() и setXXX() методи

Ако искаме да валидираме входните данни, трябва да реализираме метода “validate”

Ако искаме да инициализираме стойности преди тяхното попълване, трябва да реализираме метода “reset”

Page 19: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionForm

Алтернативни ActionForm типове Map-backed ActionForm

Стойностите се съдържат в Map Динамично, гъвкаво представяне на данните

DynaActionForm ActionForm с декларативно зададени имена на

параметрите – улеснява реализацията и поддръжката

Методът “reset” възстановява стойностите на ВСИЧКИ параметри

Page 20: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът Action

Играе главна роля в Struts Основни задачи/отговорности

Осъществяване на достъп до бизнес слоя на приложението

Подготовка на данните за използване от презентационния слой

Обработка на възникналите грешки по време на изпълнение на горните две задачи

Пренасочване към подходяща точка от View частта на приложението

Page 21: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът Action

Отправна точка за изпълнимия код е методът “execute” (“perform”)

Данните от HTTP заявката са вече обработени и се предават на Action обекта посредством ActionForm обект

Action обектите имат достъп и до самата HTTP заявка, както и до HTTP отговора

Action класовете определят логиката на управление на приложението

Page 22: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът Action

Връща към извикващия RequestProcessor ActionForward обект

ActionForward указва View частта от приложението, към която ще се предаде управлението

Възможно е да се изгражда верига от Action класове (Action chaining)

При възникване на грешки е възможно да ги обработи и върне в user-friendly вид към клиента

Page 23: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionForward

Указва следващата отправна точка за приложението чрез атрибута си “path”

Атрибутът “redirect” определя дали ще се извърши пренасочване на сървъра (forward) или HTTP пренасочване (redirect)

Два основни типа ActionForward глобални (могат да се използват в цялото

приложение) локални (дефинирани са в конкретен

ActionMapping)

Page 24: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Класът ActionError

Съдържа описание на възникнала по време на работата на приложението грешка

Дава възможност за логическа интерпретация на грешките в достъпен за потребителя формат

Възможно е да се обединяват много грешки в един ActionErrors обект

Page 25: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Да обединим всичко в едно – “struts-config.xml”

Точката на обединение на всички компоненти на Struts-базираното приложение

Съдържа ActionForms, ActionForwards (глобални + локални), ActionMappings

Съдържа обръщения към ресурси на приложението

Може да дефинира глобална обработка на грешки (exceptions)

Page 26: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Примерен “struts-config.xml”

Page 27: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Обобщение – Struts control flow

1) Клиентът извършва заявка

2) WEB контейнерът предава заявката към ActionServlet

3) Ако в приложението са дефинирани множество модули, ActionServlet избира подходящия модул и съответстващия му RequestProcessor

4) RequestProcessor намира mapping, съответстващ на клиентската заявка

5) Ако mapping указва form bean, RequestProcessor проверява дали вече съществува такъв form bean (ако не – създава такъв)

Page 28: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Обобщение – Struts control flow

6) Ако mapping указва form bean, RequestProcessor попълва form bean от клиентската заявка

7) Ако параметърът на mapping “validate” е истина, ActionServlet извиква метода “validate” на form bean

8) Ако “validate” не успее, RequestProcessor пренасочва към пътя, указан от “input” параметъра на mapping и процесът завършва

9) Ако с mapping се асоциира тип Action, той се използва наново ако вече съществува

10) RequestProcessor извиква “execute” метода на Action, като му подава създадения form bean (или null)

Page 29: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Обобщение – Struts control flow

11) Action може да попълва form bean, да извиква бизнес методи и т.н.

12) Action връща ActionForward към RequestProcessor 13) Ако ActionForward съдържа път към друг Action,

започваме цикъла отначало; в противен случай цикъла завършва, управлението се предава на JSP страница (или друга презентационна технология)

14) Ако JSP страницата съдържа Struts HTML тагове и те виждат правилната form bean в заявката, стойностите им се попълват автоматично. В противен случай тагът <html:form> създава form bean

Page 30: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts Какво представлява Struts Ролята на Struts в приложението Основни градивни елементи и класове Основни похвати Поддръжка на Struts в JDeveloper 10g

Page 31: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Разширяване на класа RequestProcessor

Множество extension points – под формата на методи от вида processXXX()

Всички такива методи се извикват в рамките на “process” метода на RequestProcessor

RequestProcessor осигурява имплементация по подразбиране на всички методи от този вид

Page 32: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Разширяване на класа RequestProcessor

processRoles() – позволено ли е на потребителя да изпълни съответния Action

Бърза реализация на централизирана подсистема за проверка на права

Най-често предефинираният метод

processPopulate(), processValidate() – позволяват собствена имплементация на попълването и валидацията на ActionForm

processLocale(), processNoCache(), …

Page 33: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Валидация на входни данни

Добра практика е да се извършва в рамките на “validate” метода на ActionForm

При невалидни/некоректни данни Struts автоматично връща съобщенията за

грешки към потребителя атрибутът “input” на ActionMapping указва

точното място от View частта на приложението

Page 34: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Валидация на входни данни

Struts Validator Алтернатива на традиционния метод на

валидация на данни (Struts 1.0) Вградени типове данни Декларативна валидация (отделен

конфигурационен файл), промяна без рекомпилация

Поддръжка на локализация на съобщенията за грешки

Page 35: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интернационализация и локализация в Struts

Интернационализация – дизайнът на приложението позволява адаптация към различни езици и региони

Struts гради върху стандартните средства, заложени в Java платформата

Разработчиците не са обвързани с използването на Struts за интернационализация на приложението

Page 36: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интернационализация и локализация в Struts

Интернационализация (Java) Java.util.Locale – разграничаване между различни

местоположения Java.util.ResourceBundle – централен склад за

съобщения; може да се извлича съобщение за даден Locale; поддръжка за добавяне на нов Locale без да се налага рекомпилация

Java.util.MessageFormat – форматиране на елементи (дати, валута, ...) според езика и региона на определен Locale

Page 37: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интернационализация и локализация в Struts

Локализация – процесът на адаптация на приложението към различни езици и региони

Локализация Struts поддържа Locale обект в сесията на всеки

потребител ServletRequest.getLocale() връща локала, зададен

от WEB браузъра, но Struts няма директен контрол върху този локал

Page 38: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интернационализация и локализация в Struts

Локализация MessageResources – клас, който унифицира

процеса на извличане на съобщения MessageResources осигурява достъп до resource

bundle по подразбиране, който се зарежда от controller сървлета

ActionMessage – клас-обвивка на едно локализирано съобщение

Поддръжка на обикновени съобщения и съобщения за грешка (ActionError в Struts 1.0)

Генерираните съобщения се запазват чрез метода “saveMessages(<request>, <messages>)”

Page 39: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Предотвратяване на double submissions

Проблем в WEB програмирането е липсата на контрол върху приложението от страна на клиента (най-често web browser)

Double submissions – проблем, който се среща във ВСИЧКИ WEB приложения

В Struts се решава чрез използване на т.нар. token

Page 40: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Предотвратяване на double submissions

Опростен сценарий Преди предаване на управлението на

презентационната логика се генерира token (който е уникален в рамките на един HTTP request)

В “execute” метода на Action, преди същинската логика, се проверява валидността на token Ако не е валиден, връщаме подходящо

съобщение за грешка към потребителя Ако е валиден, премахваме текущата token

информация и продължаваме

Page 41: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интеграция на Struts с други технологии

Struts 1.x включва технологии, които в Struts 1.0 са били включвани допълнително към ядрото

JSTL (Java Standart Tags Library) Библиотека с JSP тагове Улеснява голяма част от стандартните

операции, реализирани в една JSP страница Намалява употребата на скриптлети

Page 42: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интеграция на Struts с други технологии

Struts Validator Алтернативен начин за валидация на входни

данни (в Struts 1.0 можем да ползваме само метода “validate” на ActionForm)

Декларативна валидация на данни Бърза и гъвкава имплементация Вградени валидатори за наи-често използваните

типове данни – integer, float, date, regex, … При промяна не се налага рекомпилация

Page 43: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интеграция на Struts с други технологии

Tiles Осигурява консистентност на външния вид на

приложението Изпозва JSP includes – широко разпространена

техника, оптимизирана в повечето Java сървлет контейнери

Tile – синоним на шаблонна страница

Page 44: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Интеграция на Struts с други технологии

Tiles В основата стои layout template – страница, която

определя позицията на основни елементи (tiles) като заглавна част, меню, съдържание

Основните елементи също са страници По-лесна промяна, code reuse на ниво JSP

страница

Page 45: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts Какво представлява Struts Ролята на Struts в приложението Основни градивни елементи и класове Основни похвати Поддръжка на Struts в JDeveloper 10g

Page 46: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

JDeveloper 10g

Интегрирана среда за разработка (IDE) Поддържа пълния цикъл на разработка на

приложения – моделиране, кодиране, тестване, оптимизиране, ...

Използва последните Java, XML и SQL стандарти Съдържа множество wizards за улеснение и

автоматизация на дейности Визуални дизайнери на всяко ниво Мощен редактор на код

Page 47: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Поддръжка на Struts в JDeveloper 10g Визуален дизайнер на потока от страници (page flow)

Page 48: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Поддръжка на Struts в JDeveloper 10g Визуализация на компоненти по време на дизайн

Page 49: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Поддръжка на Struts в JDeveloper 10g Подробен визуален редактор на “struts-config.xml”

Page 50: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

2. Въведение в Oracle Application Development Framework (ADF) Какво представлява ADF Oracle ADF Binding Context Жизнен цикъл на ADF Интеграция на ADF със Struts

Page 51: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Какво представлява ADF

Цялостен слой за продуктивна разработка на J2EE приложения

Използва готови шаблони и компоненти Поведение, базирано на метаданни Интегрира голям брой технологии,

възможност за избор

Page 52: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Какво представлява ADF

Page 53: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

2. Въведение в Oracle Application Development Framework (ADF) Какво представлява ADF Oracle ADF Binding Context Жизнен цикъл на ADF Интеграция на ADF със Struts

Page 54: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Oracle ADF Data Controls

Абстракция на модела за данни на даден business service

Позволява достъп до всички business services по унифициран начин

Достъп до различни източници на данни и операции с тях

ADF BC, TopLink, JavaBeans EJB Session Beans, Web Services

Намират се в Data Control Palette Ако използваната технология е ADF BC,

съответстват на application module

Page 55: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Iterator Bindings and Control Bindings

Осигуряват разделение между back-end данните и front-end визуализацията им

Iterator Bindings Осигуряват унифицирани методи за работа с

колекции от данни, доставени от data controls

Control Bindings Осигуряват на графичните контроли стандартен

интерфейс за комуникация с iterator bindings Позволяват извикване на “action” методи за

подготвяне на данни и обработка на събития

Page 56: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Binding Containers and Binding Context

Binding Containers Именована група от свързани Iterator Bindings и

Control Bindings Наричани “UI Model”, тъй като осигуряват

подходяща част от данните за специфичен потребителски интерфейс

Oracle ADF Binding Context Осигурява контекста на данните за цялото

приложение Съдържа data controls и binding containers

Page 57: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Oracle ADF Binding Context

Базиран на .xml конфигурационни фалове Изгражда се в “design time” в JDeveloper

Автоматична синхронизация с конфигурационните файлове

Възможност за дефиниране на собствени data bindings

В Web приложения “controller” слоят е отговорен за попълването на ADF Binding Context преди насочване към “view”

“View” слоят извлича данните от модела за визуализация (pull model)

Page 58: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Oracle ADF Binding Context

Page 59: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

2. Въведение в Oracle Application Development Framework (ADF) Какво представлява ADF Oracle ADF Binding Context Жизнен цикъл на ADF Интеграция на ADF със Struts

Page 60: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

LifeCycle (interface)

Дефинира методите (етапите) от жизнения цикъл

Отговорности на LifeCycle Позволява на Web страниците да

взаимодействат с ADF модела Инициализира подходящия binding container за

всяка страница Обновява bindings стойностите в контейнера Подготвя данните за визуализация

Набор от класове, реализиращи LifeCycle PageLifeCycle, StrutsPageLifecycle StrutsJspLifecycle, StrutsUIXLifecycle

Page 61: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

LifecycleContext

Съдържа информация за състоянието по време на жизнения цикъл

HTTP request/response Binding context Binding container (“UI Model”) Спсък със “събития”

Подава се като параметър на всички методи на LifeCycle

Разширява HashMap, така че могат да се съхраняват допълнителни данни

DataActionContext го разширява и поддържа работа с ADF Action класове

Page 62: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Жизнен цикъл на ADF

Page 63: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

2. Въведение в Oracle Application Development Framework (ADF) Какво представлява ADF Oracle ADF Binding Context Жизнен цикъл на ADF Интеграция на ADF със Struts

Page 64: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

DataAction и DataForwardAction

Разширяват стандартния Action Осигуряват достъп до модела и жизнения

цикъл на ADF през ADF Binding Context (DataActionContext)

Осигуряват механизъм за обработка на т.нар. “събития” (events)

Задействат се от “view” частта на приложението Няма нужда от отделен Action за всяко събитие

Page 65: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

BindingContainerActionForm

Разширява ActionForm, реализира DynaBean Автоматично прави достъпни атрибутите на

даден binding container Създава се автоматично от JDeveloper при

нужда в “struts-config.xml” По време на изпълнение на приложението

DataAction(DataForwardAction) автоматично попълват и запазват промени в модела

Page 66: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

3. Изграждане на примерно Struts-базирано приложение Представяне на Simple Polling System

(SPS) Изграждане на бизнес модела на

приложението

Изграждане на ViewController частта на приложението

Page 67: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Представяне на Simple Polling System (SPS)

Page 68: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Представяне на Simple Polling System (SPS)

Page 69: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

3. Изграждане на примерно Struts-базирано приложение Представяне на Simple Polling System

(SPS) Изграждане на бизнес модела на

приложението

Изграждане на ViewController частта на приложението

Page 70: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Изграждане на бизнес модела на приложението

Live Demo Бизнес обекти (business objects) Достъп до данните (data access) Бизнес услуги (business services)

Page 71: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

3. Изграждане на примерно Struts-базирано приложение Представяне на Simple Polling System

(SPS) Изграждане на бизнес модела на

приложението

Изграждане на ViewController частта на приложението

Page 72: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Изграждане на ViewController частта на приложението

Live Demo Предварително разширяване на Struts/ADF

framework Дизайн на приложението през диаграмата на

страниците Визуален стил на изграждане на JSP страници Разширяване на поведението на

DataForwardAction

Page 73: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Съдържание

1. Въведение в Struts

2. Въведение в Oracle Application Development Framework (ADF)

3. Изграждане на примерно Struts-базирано приложение

4. Заключение

Page 74: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Допълнителна информация

Strutsstruts.apache.org/

struts.apache.org/userGuide/

Oracle JDeveloperwww.oracle.com/technology/products/jdev/index.html

www.oracle.com/technology/software/products/jdev/htdocs/soft9051.html

Oracle ADFwww.oracle.com/technology/products/jdev/collateral/papers/10g/ADFFAQ/index.html

www.oracle.com/technology/products/jdev/collateral/papers/10g/ADF_overview.pdf

www.oracle.com/technology/documentation/jdev/adf_guidelines_manual.pdf

Page 75: Лектор : Георги Денчев ComSoft Ltd

Microsoft .NET Framework OverviewBulgarian Oracle User Group

Q&A