TUHRA Logo

Oracle JDeveloper 10g for Forms & PL/SQL Developers
Table Of Contents

Foreword xi
Acknowledgments xiii
Introduction xvii

PART I - Technology Overviews

1 J2EE Basics

3
What Do I Need to Know About Database Application Architecture? 5
What Is J2EE? 7
    J2EE and Java EE 5 7
    J2EE Parts 8
    J2EE Platform 9
What Non-J2EE Web Technologies Are Popular in J2EE Environments? 19
    User Interface Technologies 19
    Web Services 22
How Do J2EE Architectures Differ from Traditional Architectures? 23
How Do I Choose Between J2EE and Oracle Forms and Reports? 24
    Oracle’s Direction 24
    Oracle Forms or J2EE? 25
    Oracle Reports or J2EE? 27
Should I Pay Attention toNET? 28
How Does Oracle Forms Services Fit into J2EE? 28

2 Web Communications

31
How Does HTTP Work? 32
    HTTP Request 33
    HTTP Response 36
    Methods 39
    Other HTTP Features 40
What Are the Steps in a Web Application Roundtrip? 40
How Does Oracle Forms Services Use HTTP? 43

3 JDeveloper and ADF as RAD Tools

45
What Do We Mean by RAD? 46
What Is a Framework? 48
    The Anatomy of a Framework 48
    What Characterizes a Good Framework? 50
    Oracle Forms as a Framework 52
What Is Oracle ADF? 54
    How Do I Choose Technologies? 56
    User Interface Technology 57
    Database Integration 59
Why Is JDeveloper an IDE for RAD? 61
    A Familiar IDE? 62
    Getting Started with JDeveloper 63
    Laying Out the IDE 71
    Where Are the Wizards? 73
    The RAD Is in the Frameworks 76

4 Required Web Languages and Java Language Basics

79
Which Languages Do I Really Need to Know? 80
    How Much Code Will I Need to Write? 81
    How Much of Which Languages Do I Need to Know? 82
What Do I Need to Know About XML? 83
Which Java Concepts Are Important? 85
    Java Foundations 85
    Control Structures 97
    Datatypes 100
    Operators 103
    Resources 104

5 JavaServer Faces Basics

107
Why Was JSF Developed? 109
What Languages Other than Java Are Important to JSF Work? 110
What JSF Concepts Do I Really Need to Know Now? 118
    What Is JSF? 118 
    Runtime Architecture 119
    JSF-Oriented Files 122
    Components 125
    Designing Cross-Platform Interfaces 132
Where Can I Find Additional Information About JSF? 133
    Websites 133
    Printed Books 134

6 Business Services in ADF

135
How Do I Issue a Query to the Database? 136
    1. Set up an Application Workspace and Project for ADF Business Components 137
    2. Create the Query Object 137
    3. Define the Query 138
    4. Expose the Query 141
    5. Test the Query 143
How Can I Update Data? 145
    1. Create an Entity Object 146
    2. Create an Updateable View Object 147
    3. Define the View Object Attributes 148 
    4. Refine the View Object Query 148
    5. Test the View Object 149
How Do I Generate a Primary Key Value? 149
    Using a Database Trigger to Allocate Sequences 150
    Mutating Data 153
How Do I Handle Transactions? 154
How Does Record Locking Work? 158
    ADF Business Component Configurations 159
Where Is the Login Dialog? 163
    Connection Pooling 163
    Security the J2EE Way 163
How Do I Define Business Rules? 164
    Database Referential Integrity Constraints 164
    Data Content Validations 168
    Complex Validations and Rules 170
    Evaluation Order of Validations 172
How Can I Dynamically Change a Query? 174
How Can I Interface ADF BC with PL/SQL? 177
    Calling a Stored PL/SQL Procedure 177
    Returning Data from PL/SQL to ADF BC 180
    Basing a Entity Object on PL/SQL 182

7 The ADF Model Layer

185
How Do I Create Data-Bound Pages? 186
    The Data Control Palette 187
    Using the Data Control Palette 188
    "Drop as" UI Options 189
What Files Are Involved in Data Binding? 200
    Defining the Data Control 200
    Using the Data Control 205
     A Binding File Summary 212

8 ADF Model Advanced Bindings

213
How Can I Edit Data Bindings? 214
    Attribute Bindings 216
    Table Bindings 218
    Action Bindings 222
    Method Bindings 230
    List Bindings 232
    Navigation List Bindings 237
    Boolean Bindings 238
    Tree Bindings 239
    Cleaning Up Bindings 246
What Is an Iterator? 246
How Can I Control Execution in the ADF Model? 250
    Another Look at Executables 251
    Overriding and Adding to the ADFm Life Cycle 253
What Are Parameters? 257
    Populating Parameters 257
How Do I Write Code Using the ADF Model? 258
    Access to Data and Methods 258
    Executing Methods and Operations 261

PART II - Developing the Application

9 Your First JSF

265
Hands-on Practice: Create a JSF Login and JSF Home Page 266
    I. Create the Application Workspace and Project 268
    II. Diagram the Page Flow 272
    III. Create the Login and Home Pages 274
    IV. Add Components to the Login Page 282
    V. Add Components to the Home Page 292
    VI. Add Navigation and Validation Logic to the Application 298
Centralizing Messages 303
Hands-on Practice: Create and Call a Message Bundle 305
Hands-on Practice: Access Message Bundle Messages with EL 306

10 Application Design Principles and Sample Application Overview

309
System Design 310
    System Design Tools and the SDLC 310
    Application Design Considerations 312
    Best Practices 317
Sample Application System Design 320
    Database Design 320
    Application Design 322
Hands-on Practice: Create the Workspace and Projects 331

11 Home Page and Menus

333
Hands-on Practice: Create the Home Page and Menus 334
    I. Prepare the Model Project 335
    II. Prepare the ViewController Project 341
    III. Create a Template 343
    IV. Copy the Template File and Customize the Copies 356
    V. Complete the Home Pages 361

12 Search Page

365
Search and Edit Functions 366
Hands-on Practice: Develop the Employee Search Page 367
    I. Prepare the Model Objects 368
    II. Add Components to the Search Page 388
    III. Refine the Search Page Functionality 396

13 Edit Page

415
Hands-on Practice: Complete the Edit Page 416
    I. Prepare the Model Components 417
    II. Create the Employees Edit Page 422
    III. Finish Navigation from the Search Page 433
    IV. Build a Pulldown List and LOVs 438

14 Adding Security

449
Application Security 450
    Security in Oracle Forms and Oracle Reports Applications 450
    Security in Web Applications 450
Hands-on Practice: Set Up Security in the Sample Application 457
    I. Configure Container Security 458
    II. Define Application Security Settings 461
    III. Add Security to the User Interface 476

PART III - Additional Techniques

15 Sample Application Enhancements

485
Hands-on Practice: Load Audit Columns Using a Database Procedure and Application Context 487
    I. Create the Database Objects 488
    II. Set the Context from the Application 492
Hands-on Practice: Rename an ADF-Oriented JSF JSP File 496
Prevent SQL Injection Attacks 497
    Securing Find Mode 499
Invoke Partial Page Rendering 505
    Using PPR 505
Hands-on Practice: Use PPR to Disable the Menu Until Outstanding Changes Are Committed 507
Define Global Format Masks 509
    Hands-on Practice: Apply Standard Formatting to the Salary Field 509

16 Oracle JHeadstart

511
What Is JHeadstart? 512
    JHeadstart Benefits 512
    Using JHeadstart 513
Understanding the Application Definition 515
    Creating an Application Definition 515
    The Application Definition Editor 516
    Contents of the Application Definition 517
Running the JHeadstart Application Generator 523
    Generator Templates 524
    Generator Outputs 524
    Making and Preserving Post-Generation Changes 526
Running the Generated Application 528
    Examples of Generated Screens 528
    The Role of the JHeadstart Runtime 532
JHeadstart Designer Generator 533
    Design-Capturing Oracle Forms in Oracle Designer 534
Migrating Oracle Forms Applications 535
    Is the Application Suitable for a Partial Migration? 536
    How Do I Select a Migration Tool? 536
Licensing, Support, and Other Resources 538
Index 541