+612 9045 4394
Mastering XPages : A Step-by-Step Guide to XPages Application Development and the XSP Language - Martin Donnelly

Mastering XPages

A Step-by-Step Guide to XPages Application Development and the XSP Language

Sorry, the book that you are looking for is not available right now.

We did a search for other books with a similar title, however there were no matches. You can try selecting from a similar category, click on the author's name, or use the search box above to find your book.

Share This Book:

The first complete, practical guide to XPages development - direct from members of the XPages development team at IBM Lotus


Martin Donnelly, Mark Wallace, and Tony McGuckin have written the definitive programmer's guide to utilizing this breakthrough technology. Packed with tips, tricks, and best practices from IBM's own XPages developers, Mastering XPages brings together all the information developers need to become experts - whether you’re experienced with Notes/Domino development or not. The authors start from the very beginning, helping developers steadily build your expertise through practical code examples and clear, complete explanations. Readers will work through scores of real-world XPages examples, learning cutting-edge XPages and XSP language skills and gaining deep insight into the entire development process. Drawing on their own experience working directly with XPages users and customers, the authors illuminate both the technology and how it can be applied to solving real business problems.


Martin Donnelly previously led a software startup that developed and distributed small business accounting software. Donnelly holds a Commerce degree from University College Cork and an M.S. in Computer Science from Boston University.


Mark Wallace has worked at IBM for 15 years on many projects as a technical architect and application developer.


Tony McGuckin participates in the Lotus OneUI Web Application and iWidget Adoption Workgroup. He holds a bachelor's degree in Software Engineering from the University of Ulster.

Forewordp. xx
Prefacep. xxiv
Getting Started with XPagesp. 1
An Introduction to XPagesp. 3
XPages Fundamentalsp. 3
Brand New Technology?p. 4
A Different Development Paradigmp. 5
The More Things Change, the More Things Stay the Samep. 7
New Horizonsp. 7
Conclusionp. 8
Getting Everything You Needp. 9
Downloads, Versions, and Locationsp. 9
Installing Domino Designerp. 10
Installing Client Fix Packsp. 11
Client Configurationp. 11
Quick Tour of Domino Designerp. 12
Domino Designer Welcome Screenp. 13
Domino Designer Perspectivep. 14
Creating a New Applicationp. 15
Creating an XPagep. 16
Previewing in the Notes Clientp. 18
Previewing in a Web Browserp. 18
Adding a Control to an XPagep. 21
Conclusionp. 22
Building Your First XPages Applicationp. 23
Laying the Foundationsp. 24
Forms and Viewsp. 26
Building an XPages Viewp. 31
Completing the CRUDp. 36
Conclusionp. 42
XPages Development: First Principlesp. 43
Anatomy of an XPagep. 45
What Exactly Is an XPage?p. 46
Understanding XSP Tag Markupp. 47
Getting Started with XMLp. 47
XPages XML Syntaxp. 50
Simple Propertiesp. 52
Complex Propertiesp. 54
Complex Valuesp. 54
Computed Propertiesp. 55
Data Bindingp. 59
XPages Tagsp. 60
Data Sourcesp. 61
Domino Documentp. 61
Domino Viewp. 62
Data Contextp. 63
Controlsp. 64
Editing Controlsp. 64
Command Controlsp. 70
Selection Controlsp. 74
Display Controlsp. 82
File-Handling Controlsp. 84
Containersp. 87
Panelp. 87
Tablep. 90
Viewp. 91
Data Tablep. 94
Repeatp. 95
Include Pagep. 99
Tabbed Panelp. 99
Sectionp. 100
XPage Resourcesp. 101
Script Libraryp. 101
Style Sheetp. 103
Resource Bundlep. 104
Dojo Modulep. 105
Generic Head Resourcep. 106
Metadata Resourcep. 106
Convertersp. 107
Validatorsp. 110
Simple Actionsp. 118
Client-Side Scriptingp. 125
HTML Tagsp. 127
Conclusionp. 128
XPages and JavaServer Facesp. 129
What Is JavaServer Faces?p. 130
JSF Primerp. 131
How Does XPages Extend JSF?p. 138
XML-Based Presentation Tierp. 141
Request Processing Lifecyclep. 142
User Interface Component Modelp. 143
Standard User-Interface Componentsp. 148
Value Binding and Method Binding Expression Evaluationp. 152
XPages Default Variablesp. 154
Conclusionp. 156
Building XPages Business Logicp. 157
Adding Business Logicp. 157
Using the xp:eventHandler Tagp. 160
Simple Actionsp. 167
Change Document Modep. 168
Confirm Actionp. 169
Create Response Documentp. 170
Delete Documentp. 171
Delete Selected Documentsp. 172
Execute Client Scriptp. 173
Execute Scriptp. 173
Modify Fieldp. 174
Open Pagep. 175
Publish Component Propertyp. 176
Publish View Columnp. 177
Save Data Sourcesp. 179
Save Documentp. 180
Set Component Modep. 182
Set Valuep. 183
Action Groupp. 184
Using JavaScript with XPagesp. 186
Server-Side JavaScriptp. 186
Client JavaScriptp. 206
Conclusionp. 211
Data Bindingp. 213
Working with Domino Documentsp. 215
Domino Document Data Sourcep. 216
Creating and Editing Documentsp. 219
Controlling URL Parameter Usagep. 220
Creating Response Documentsp. 220
Executing Form Logicp. 224
Managing Concurrent Document Updatesp. 227
Multiple Document Data Sourcesp. 228
Document Data Source Eventsp. 231
Common Data Source Propertiesp. 233
Miscellaneous Data Source Propertiesp. 234
Working with Domino DocumentsâÇôProgrammatically!p. 235
Simple Actionsp. 235
JavaScriptp. 236
Rich Documentsp. 238
Conclusionp. 242
Working with Domino Viewsp. 243
DatabaseName Propertyp. 245
View Data Source Filtersp. 246
CategoryFilter Propertyp. 246
Search, searchMaxDocs Propertiesp. 249
ParentId Propertyp. 251
IgnoreRequestParams Propertyp. 252
Keys, keysExactMatch Propertiesp. 253
Other View Content Modifiersp. 256
StartKeys Propertyp. 256
ExpandLevel Propertyp. 257
A Page with Two Viewsp. 259
RequestParamPrefix Propertyp. 260
When Is a View Not a View?p. 261
Go Fetch! Or Maybe Notp. 262
Loaded, scope Propertiesp. 263
PostOpenView, queryOpenView Propertiesp. 263
Caching View Datap. 265
Sorting Columnsp. 270
Conclusionp. 271
Beyond the View Basicsp. 273
Pick a View Control, Any View Controlp. 273
The View Control: Up Close and Personalp. 276
Column Data Like You've Never Seen Beforep. 277
Simple View Panel Make Overp. 279
Working with Categoriesp. 293
View Properties and View Panel Propertiesp. 301
Data Tablep. 305
Building a Mini Embedded Profile View using a Data Tablep. 311
Repeat Controlp. 316
A Repeat Control Design Patternp. 317
Nested Repeatsp. 318
The Rich Get Richerp. 320
Some Fun with the Pagerp. 321
Conclusionp. 324
Programmabilityp. 325
Custom Controlsp. 327
Divide and Conquerp. 328
Getting Started with Custom Controlsp. 329
Using Property Definitionsp. 337
Property Tabp. 340
Validation Tabp. 343
Visible Tabp. 345
Property Definitions Summaryp. 346
Using the compositeData Objectp. 346
Send and You Shall Receivep. 352
Multiple Instances and Property Groupsp. 355
Custom Control Design Patternsp. 357
Aggregate Container Patternp. 357
Layout Container Patternp. 358
Conclusionp. 365
Advanced Scriptingp. 367
Application Frameworksp. 367
AJAX and Partial Refreshp. 369
Partial Refresh: Out-of-the-Box Style!p. 369
Partial Refresh: Doing-It-My-Way Style!p. 376
Event Parametersp. 384
Dojo Integrationp. 386
DojoTheme and dojoParseOnLoad Propertiesp. 387
DojoModule Resourcep. 388
DojoType and dojoAttributes Propertiesp. 389
Integrating Dojo Widgets and Extending the Dojo Class Pathp. 390
Working with Traditional Notes/Domino Building Blocksp. 401
Working with @Functions, @Commands, and Formula Languagep. 402
Working with Agents, In-Memory Documents, and Profile Documentsp. 405
Managed Beansp. 412
Conclusionp. 419
XPages Extensibilityp. 421
How to Create a New User Interface Controlp. 422
Example Componentp. 423
Let's Get Startedp. 424
Create the Initial Applicationp. 424
Add Package Explorer to the Domino Designer Perspectivep. 424
Add a Java Source Code Folderp. 426
Building a Componentp. 428
Create a UI Component Extension Classp. 428
Create Tag Specificaton (.xsp-config) for the UI Component Extensionp. 431
Create a Renderer and Register It in the Application Configuration (faces-config.xml)p. 434
Quick Test Application to Verify Everything Is OK So Farp. 437
Working with Component Propertiesp. 438
Component Properties and Attributesp. 438
Adding a Property to a Componentp. 439
State Holder: Saving State Between Requestsp. 440
Specifying Simple Propertiesp. 440
Inheriting xsp-config Propertiesp. 441
Create the Initial xsp-config Definitionsp. 446
Create base.xsp-configp. 446
Create an Interface to Match the Group Property Definition in base.xsp-configp. 450
Revisit the Component Properties in Domino Designerp. 452
Specifying Complex Propertiesp. 453
Complete the xsp-config for the UISpinner Componentp. 464
Complete the UI Component Extension, UISpinnerp. 473
Complete the Renderer UISpinnerRendererp. 477
Create a Sample Application Using the UISpinner Componentp. 483
Take Your New UI Component Extension for a Test Drivep. 483
Create a Backing Beanp. 483
Register the Backing Beanp. 486
Create the Final Test Applicationp. 486
Nice Look and Feelp. 491
Test to Ensure That It All Works!p. 491
Where to Go From Herep. 491
XPages Extensibility API Developers Guidep. 492
XPages Extension Libraryp. 492
IBM developerWorksp. 492
Conclusionp. 493
XPages in the Notes Clientp. 495
Think Inside the Boxp. 496
Getting Started with XPages in the Notes Clientp. 498
3, 2, 1 .Lift Offp. 499
Bookmarksp. 501
Working Offlinep. 503
One of These Things Is Not Like the Otherp. 507
Other Subtle Differencesp. 508
XPages: A Good Notes Citizenp. 511
Introducing enableModifiedFlag and disableModifiedFlagp. 513
Keeping Tabs on Your Client Appsp. 516
Notes Links Versus Domino Linksp. 520
Some Debugging Tipsp. 525
XPages and Composite Applicationsp. 528
Making a Component of an XPages Applicationp. 529
Is Anyone Out There? Creating a Component that Listens to Your XPages Componentp. 531
Assembling a Composite Application: Aggregating the XPages Discussion Component and Notes Google Widgetp. 533
Hey, This Is a Two-Way Street! A Component May Receive and Publish Events!p. 536
Further Adventures with Composite Applicationsp. 540
Application User Experiencep. 541
XPages Themingp. 543
It Used to Be Like That .But Not Anymore!p. 543
Styling with Style!p. 545
Setting the Style Property Manuallyp. 550
Understanding How the Style Property Is Usedp. 551
Computing the Style Propertyp. 552
Styling with Class!p. 552
Getting Something for Nothing!p. 553
Understanding How the styleClass Property Is Usedp. 559
Computing the styleClass Propertyp. 561
Working with Extended styleClass and style Propertiesp. 563
Theming on Steroids!p. 567
What Is a Theme?p. 567
What Can You Do with a Theme?p. 568
Understanding Theme Architecture and Inheritancep. 569
Working with a Themep. 576
Theme Resourcesp. 587
Resource Pathsp. 597
Theme Properties, themeId, Control Definitions, and Control Propertiesp. 606
Conclusionp. 620
Internationalizationp. 621
Using Localization Optionsp. 622
Localization with Resource Bundle Filesp. 623
Setting Localization Optionsp. 624
Testing a Localized Applicationp. 626
Working with Translatorsp. 628
Merging XPage Changesp. 631
Gotchas!p. 633
Localizing Computed Expressions and JavaScriptp. 636
Adding a Resource Bundlep. 637
Localizing Computed Expressionsp. 638
Localizing Client-Side JavaScriptp. 639
Localizing Script Librariesp. 640
Server-Side Script Librariesp. 640
Client-Side Script Librariesp. 641
International Enablementp. 643
Locales in XPagesp. 644
Deprecated Locale Codesp. 648
Conclusionp. 650
Performance, Scalability, and Securityp. 651
Application Performance and Scalabilityp. 653
Golden Rulesp. 654
Understanding the Request Processing Lifecyclep. 655
GET-Based Requests and the JSF Lifecyclep. 656
POST-Based Requests and the JSF Lifecyclep. 656
Reducing CPU Utilizationp. 658
GET- Versus POST-Based Requestsp. 658
Partial Refreshp. 663
Partial Execution Modep. 665
Reducing Memory Utilizationp. 668
HTTPJVMMaxHeapSize and HTTPJVMMaxHeapSizeSet Parametersp. 669
Xsp.persistence. Propertiesp. 669
DataCache Propertyp. 670
Conclusionp. 672
Securityp. 673
Notes/Domino Security and XPagesp. 673
Server Layer of Securityp. 674
Application Layer of Securityp. 675
Design Element Layer of Securityp. 677
Document Layer of Securityp. 684
Workstation ECL Layer of Securityp. 686
Useful Resourcesp. 687
Let's Get Startedp. 687
Creating the Initial Applicationp. 687
Implementing ACLsp. 689
Sign the XPages with Your Signaturep. 690
Programmability Restrictionsp. 691
Sign or Run Unrestricted Methods and Operationsp. 692
Sign Agents to Run on Behalf of Someone Elsep. 692
Sign Agents or XPages to Run on Behalf of the Invokerp. 693
Sign Script Libraries to Run on Behalf of Someone Elsep. 693
Restricted Operationp. 693
XPages Security Checkingp. 695
NSF ClassLoader Bridgep. 695
XPages Security in the Notes Clientp. 696
Execution Control List (ECL)p. 697
Active Content Filteringp. 699
Public Accessp. 702
Setting Public Access for XPagesp. 703
Checking for Public Access in XPagesp. 703
SessionAsSignerp. 704
Troubleshooting XPages Java Security Exceptionsp. 706
Conclusionp. 707
Appendixesp. 709
XSP Programming Referencep. 711
XSP Tag Referencep. 711
XSP Java Classesp. 712
Notes/Domino Java API Classesp. 714
XSP JavaScript Pseudo Classesp. 715
XSP Style Class Referencep. 719
XSP CSS Filesp. 719
XSP Style Classesp. 720
Useful XPages Sites on the Netp. 727
Indexp. 729
Table of Contents provided by Publisher. All Rights Reserved.

ISBN: 9780132486316
ISBN-10: 0132486318
Audience: Tertiary; University or College
Format: Paperback
Language: English
Number Of Pages: 784
Published: 19th January 2011
Country of Publication: US
Dimensions (cm): 23.5 x 17.78  x 3.18
Weight (kg): 1.2
Edition Number: 1