Getting Started With WebObjects
May 2001
Apple Computer, Inc. Enterprise Objects and Enterprise © 2001 Apple Computer, Inc. Objects Framework are trademarks of All rights reserved. NeXT Software, Inc., registered in the United States and other countries. No part of this publication may be re- produced, stored in a retrieval sys- UNIX is a registered trademark in the tem, or transmitted, in any form or by United States and other countries, any means, mechanical, electronic, licened exclusively through X/Open photocopying, recording, or other- Company Limited. wise, without prior written permis- Java is a registered trademark of Sun sion of Apple Computer, Inc., with Microsystems, Inc. in the United the following exceptions: Any person States and other countries. is hereby authorized to store docu- Simultaneously published in the mentation on a single computer for United States and Canada personal use only and to print copies of documentation for personal use provided that the documentation Even though Apple has reviewed this contains Apple’s copyright notice. manual, APPLE MAKES NO WARRAN- TY OR REPRESENTATION, EITHER EX- The Apple logo is a trademark of Ap- PRESS OR IMPLIED, WITH RESPECT ple Computer, Inc. TO THIS MANUAL, ITS QUALITY, AC- Use of the “keyboard” Apple logo CURACY, MERCHANTABILITY, OR (Option-Shift-K) for commercial pur- FITNESS FOR A PARTICULAR PUR- poses without the prior written con- POSE. AS A RESULT, THIS MANUAL IS sent of Apple may constitute SOLD “AS IS,” AND YOU, THE PUR- trademark infringement and unfair CHASER, ARE ASSUMING THE EN- competition in violation of federal TIRE RISK AS TO ITS QUALITY AND and state laws. ACCURACY. No licenses, express or implied, are granted with respect to any of the IN NO EVENT WILL APPLE BE LIABLE technology described in this book. FOR DIRECT, INDIRECT, SPECIAL, IN- Apple retains all intellectual property CIDENTAL, OR CONSEQUENTIAL rights associated with the technology DAMAGES RESULTING FROM ANY described in this book. This book is DEFECT OR INACCURACY IN THIS intended to assist application devel- MANUAL, even if advised of the possi- opers to develop applications only for bility of such damages. Apple-labeled or Apple-licensed THE WARRANTY AND REMEDIES SET computers FORTH ABOVE ARE EXCLUSIVE AND Every effort has been made to ensure IN LIEU OF ALL OTHERS, ORAL OR that the information in this document WRITTEN, EXPRESS OR IMPLIED. No is accurate. Apple is not responsible Apple dealer, agent, or employee is au- for typographical errors. thorized to make any modification, exten- Apple Computer, Inc. sion, or addition to this warranty. 1 Infinite Loop Some states do not allow the exclusion or Cupertino, CA 95014 limitation of implied warranties or liabil- 408-996-1010 ity for incidental or consequential damag- Apple, the Apple logo, Mac, Macin- es, so the above limitation or exclusion tosh, and WebObjects are trademarks may not apply to you. This warranty gives of Apple Computer, Inc., registered you specific legal rights, and you may in the United States and other coun- also have other rights which vary from tries. state to state.
Contents
Preface Preface 7 About WebObjects 7 About This Book 7 Where to Go From Here 8
Chapter 1 Creating a Simple WebObjects Application 9 Creating a WebObjects Application Project 11 Examining Your Project 14 Launching WebObjects Builder 16 Creating the Page’s Content 19 Entering Static Text 19 Using the Inspector 20 Creating Form-Based Dynamic HTML Elements 21 Resizing the Form Elements 23 Binding Elements 24 Creating Variables 24 Binding the Input Elements 27 Implementing an Action Method 29 Creating the Application’s Output 30 Building and Running Your Application 33
Chapter 2 Enhancing Your Application 37 Duplicating Your Project 37 Creating a Custom Guest Class 38 Binding the Class’s Instance Variables to the Form Elements 40 Creating a Table to Display the Output 41 Adding Dynamic Elements to Table Cells 43 Binding the Dynamic Elements in the Table 44 Creating the Guest Object 44
3 Apple Computer, Inc. May 2001
CONTENTS
Keeping Track of Multiple Guests 47 Creating a Guest List 47 Adding Guests to the Guest List 49 Adding a Second Component 50 Using a Repetition 52 Adding the Finishing Touches 54 Clearing the Guest List 54 Adding a Dynamic Hyperlink 55
Chapter 3 Creating a WebObjects Database Application 59 The Movies Application 60 Enterprise Objects and the Movies Database 62 Enterprise Objects and Relationships 64 Defining the Model 65 Creating a New Model File 65 Choosing What to Include in Your Model 66 Choosing the Tables to Include 69 Specifying Primary Keys 70 Saving the Model 72 Designing the Main Page 74 Starting the WebObjects Application Wizard 74 Specifying a Model File 75 Choosing an Entity 76 Choosing a Layout 76 Choosing Attributes to Display 78 Choosing an Attribute to Display as a Hyperlink 79 Choosing Attributes to Query On 80 Running Movies 81 Examining Your Project 82 Examining the Variables 83 Examining the Bindings 85 Bindings in the Query Part 85 Bindings in the Repetition Part 86 Bindings in the Editing Part 87 Refining Main.wo 89 Specifying a Sort Order 91
4 Apple Computer, Inc. May 2001
CONTENTS
Specifying Default Values for New Enterprise Objects 92 Setting a Date Format 93 Setting a Number Format 94 Optional Exercise 94 Adding the MovieDetails Page 98 Creating the MovieDetails Component 98 Storing the Selected Movie 98 Navigating from Main to MovieDetails 99 Designing MovieDetails’ User Interface 100 Adding Date and Number Formats 101 Navigating from MovieDetails to Main 102 Running Movies 102 Refining Your Model 103 Opening Your Model 103 Removing Foreign Keys as Class Properties 104 Adding Relationships to Your Model 105 Using the Advanced Relationship Inspector 108 Where Do Primary Keys Come From? 110 Setting Up a Master-Detail Configuration 111 Creating a Detail Display Group 111 Adding a Repetition 115 Configuring a Repetition 115 Running Movies 116 Updating Objects in the Detail Display Group 116 Managing a WODisplayGroup’s Selection 118 Adding a Form 118 Adding a Talent Display Group 119 Configuring the Browser 120 Adding Insert, Save, and Delete Buttons 122 Adding Behavior to Your Enterprise Objects 123 Specifying Custom Enterprise Object Classes 124 Generating Custom Enterprise Object Classes 124 Adding Custom Behavior to Talent 125 Providing Default Values in MovieRole 125 Running Movies 126
5 Apple Computer, Inc. May 2001
CONTENTS
Glossary 127
6 Apple Computer, Inc. May 2001
PREFACE
Preface
About WebObjects
WebObjects is an object-oriented environment for developing and deploying World Wide Web applications. A WebObjects application runs on a server machine and receives requests from a user’s web browser on a client machine. It dynamically generates HTML pages in response to the user’s requests. WebObjects provides a suite of tools for rapid application development, as well as prebuilt application components and a web application server.
WebObjects is flexible enough to suit the needs of any web programmer. You can write simple WebObjects applications in a matter of minutes. For more complex projects, WebObjects makes it easy by performing common web application tasks automatically and by allowing you to reuse objects you’ve written for other applications.
About This Book
This book contains three tutorials that help you learn what WebObjects is and how to use it:
About WebObjects 7 Apple Computer, Inc. May 2001
PREFACE
Preface