精通XPages

Design Design Design

內容介紹

《精通XPages:XPages套用開發和XSP語言權威指南》是一本介紹如何使用XPages進行Web開發的書,書中使用了大量圖示和代碼清單來幫助讀者理解XPages的各種性能和屬性,旨在讓讀者能夠快速、有效地解決工作中的實際問題。本書能夠幫助您基於已有套用快速開發高性能、功能豐富的Web 2.0套用,也適用於基於Notes/Domino快速開發新的Web 2.0套用,同時保留富客戶端的各種原始特性。
XPages是Notes/Domino中新的Web套用開發框架,本書共分為7個部分來分別闡述如何使用XPages進行Web開發,重點講述了XPages開發的原則和基礎、定製控制項、高級腳本、可擴展性、脫機使用、主題定製、國際化、安全性及其他高級性能。
唐納利、華萊士和麥古金著的《精通XPages:XPages套用開發和XSP語言權威指南》是IBM Press 2011年度最暢銷書籍。本書適合從事XPage開發的人員、Notes/Domino用戶以及合作夥伴。

作者介紹

作者團隊:
三位作者均來自IBM Lotus XPages開發團隊的愛爾蘭實驗室。
Martin Donnelly,軟體架構師,領導XPages運行時開發項目組。他有著豐富的Domino Designer、Lotus Component Designer和Rational Application Developer的開發經驗。
Mark Wallace,技術組長,曾帶領團隊將Lotus Component Designer XSP運行時移植為Domino XPages運行時。現工作於IBM的Lotus Sametime Unified Telephony項目,他作為IBM技術架構師和開發人員,有著15年以上開發經驗。
Tony McGuckin,軟體工程師,現工作於Domino XPages運行時、XPages孵化組以及客戶enablement項目。他曾經參與過Lotus OneUI Web套用和iWidget Adoption工作組。
譯者團隊:
Lotus Notes/Domino中國技術團隊是CDL核心開發團隊之一,涉及Lotus Notes/Domino、Lotus iNotes以及SmartCloud等產品的開發和測試,並給全球和本地的客戶以及合作夥伴提供了大量的技術支持。另外,Notes/Domino中國技術團隊對推廣XPages在中國的部署也起著重要的作用,迄今為止,給眾多客戶以及合作夥伴舉行了數十場技術培訓和講座。參與本書翻譯的有(排名不分先後):劉奇、梁騫、周星、陳星、牛明珠、喻立久、石玉潔、曹燕、朱修偉、陳曉鵬、郭啟明。

作品目錄

第一部分 XPages入門
第1章 XPages介紹 3
1.1 XPages基礎 3
1.2 新技術? 4
1.3 不同的開發模式 4
1.4 變化的和不變的 5
1.5 新地平線 6
1.6 結語 6
第2章 準備工作 7
2.1 下載、版本和位置 7
2.2 安裝Domino Designer 8
2.3 安裝客戶機補丁包 8
2.4 客戶機配置 8
2.5 Domino Designer快速指南 9
2.5.1 Domino Designer歡迎界面 9
2.5.2 Domino Designer透視圖 10
2.5.3 創建一個新的應用程式 10
2.5.4 創建一個XPage 12
2.5.5 在Notes客戶機中預覽 12
2.5.6 在Web瀏覽器中預覽 13
2.5.7 向XPage添加控制項 15
2.6 結語 17
第3章 創建第一個XPages套用 18
3.1 奠定基礎 18
3.2 視圖和表單 20
3.3 創建一個XPages視圖 24
3.4 CRUD 29
3.5 結語 33
第二部分 XPages開發:第一原則
第4章 剖析XPage 37
4.1 到底什麼是XPage 37
4.2 理解XPage標記 38
4.2.1 XML入門 38
4.2.2 XPages XML語法 40
4.2.3 簡單屬性 41
4.2.4 複雜屬性 43
4.2.5 複雜值 43
4.2.6 計算屬性 44
4.2.7 數據綁定 47
4.2.8 XPages標籤 48
4.3 數據源 48
4.3.1 Domino文檔 49
4.3.2 Domino視圖 49
4.3.3 數據上下文 50
4.4 控制項 51
4.4.1 編輯控制項 51
4.4.2 命令控制項 55
4.4.3 選擇控制項 58
4.4.4 顯示控制項 65
4.4.5 檔案處理控制項 67
4.5 容器 69
4.5.1 面板 69
4.5.2 表格 72
4.5.3 視圖 72
4.5.4 數據表格 74
4.5.5 重複控制項 75
4.5.6 包含頁面 78
4.5.7 帶標籤的面板 78
4.5.8 區域 79
4.6 XPage資源 80
4.6.1 Script庫 80
4.6.2 樣式表 81
4.6.3 資源包 83
4.6.4 Dojo模組 83
4.6.5 通用頭資源 84
4.6.6 元數據資源 84
4.7 轉換器 85
4.8 驗證器 87
4.9 簡單操作 93
4.10 客戶機腳本 98
4.11 HTML標籤 99
4.12 結語 100
第5章 XPages與JavaServer Faces 101
5.1 什麼是JavaServer Faces 102
5.2 JSF基礎 102
5.3 XPage如何擴展JSF 106
5.3.1 基於XML的表示層 109
5.3.2 請求處理生命周期 109
5.3.3 用戶界面組件模型 109
5.3.4 標準用戶界面組件 113
5.3.5 值綁定和方法綁定 115
5.3.6 XPages內置變數 116
5.4 結語 118
第6章 創建XPages業務邏輯 119
6.1 添加業務邏輯 119
使用xp:eventHandler標籤 121
6.2 簡單操作 126
6.2.1 更改文檔方式 127
6.2.2 確認操作 127
6.2.3 創建回響文檔 128
6.2.4 刪除文檔 129
6.2.5 刪除所選文檔 130
6.2.6 執行客戶機腳本 130
6.2.7 執行腳本 131
6.2.8 修改欄位 131
6.2.9 打開頁面 132
6.2.10 發布組件屬性 133
6.2.11 發布視圖列 134
6.2.12 保存數據源 135
6.2.13 保存文檔 136
6.2.14 設定組件方式操作 138
6.2.15 設定值 139
6.2.16 操作組 139
6.3 在XPages中使用JavaScript 140
6.3.1 伺服器端JavaScript 141
6.3.2 客戶機JavaScript 156
6.4 結語 160
第三部分 數據綁定
第7章 處理Domino文檔 163
7.1 Domino文檔數據源 163
7.1.1 創建和編輯文檔 165
7.1.2 URL參數的使用 166
7.1.3 創建回響文檔 166
7.1.4 執行表單邏輯 169
7.1.5 並發文檔更新 171
7.1.6 多文檔數據源 172
7.1.7 文檔數據源事件 174
7.1.8 通用數據源屬性 176
7.1.9 其他數據源屬性 176
7.2 以編程的方式使用Domino文檔 177
7.2.1 簡單操作 177
7.2.2 JavaScript 178
7.3 富文檔 179
7.4 結語 182
第8章 使用Domino視圖 183
8.1 databaseName屬性 184
8.2 視圖數據源過濾器 185
8.2.1 categoryFilter屬性 185
8.2.2 search屬性和searchMaxDocs屬性 187
8.2.3 parentId屬性 189
8.2.4 ignoreRequestParams屬性 190
8.2.5 keys和keysExactMatch屬性 190
8.3 其他視圖內容修改器 193
8.3.1 startKeys屬性 193
8.3.2 expandLevel屬性 194
8.4 多視圖頁面 195
8.4.1 requestParamPrefix屬性 196
8.5 資料夾與視圖 198
8.6 視圖數據載入 199
8.6.1 loaded屬性和scope屬性 199
8.6.2 postOpenView屬性和queryOpenView屬性 199
8.7 視圖數據快取 200
8.8 列排序 204
8.9 結語 205
第9章 視圖基礎擴展 206
9.1 嘗試任意一種視圖控制項 206
9.2 視圖控制項:一次親密接觸 208
9.2.1 列值的全新展現 209
9.2.2 視圖面板華麗變身 210
9.2.3 分類功能的使用 221
9.2.4 視圖屬性與視圖面板屬性 227
9.3 數據表格 230
利用數據表格來構建一個迷你嵌入式概要視圖 235
9.4 重複控制項 239
9.4.1 重複控制項設計模式 240
9.4.2 嵌套重複控制項 241
9.4.3 豐富富文本內容 243
9.5 有趣的分頁器 244
9.6 結語 246
第四部分 可程式性
第10章 定製控制項 249
10.1 分而治之 249
10.2 定製控制項入門 250
10.3 使用屬性定義 257
10.3.1 屬性選項卡 259
10.3.2 驗證選項卡 262
10.3.3 可視選項卡 263
10.3.4 屬性定義總結 264
10.4 使用compositeData對象 264
10.5 傳送/接收訊息 269
多個實例和屬性組 271
10.6 定製控制項設計模式 273
10.6.1 聚合容器模式 273
10.6.2 布局容器模式 274
10.7 結語 279
第11章 高級腳本 280
11.1 應用程式框架 280
11.2 AJAX和部分更新 281
11.2.1 部分更新:Out-of-the-Box模式! 281
11.2.2 部分更新:Doing-It-My-Way模式! 288
11.3 事件參數 293
11.4 Dojo集成 295
11.4.1 dojoTheme和dojoParseOnLoad屬性 296
11.4.2 dojoModule資源 297
11.4.3 dojoType和dojoAttributes屬性 298
11.4.4 集成Dojo部件及擴展Dojo類路徑 298
11.5 使用傳統的Notes/Domino開發模組 307
11.5.1 使用@Functions、@Commands以及公式語言 308
11.5.2 使用Agents、記憶體文檔以及profile文檔 310
11.6 Managed Beans 316
11.7 結語 321
第12章 XPage可擴展性 322
12.1 如何創建一個新的用戶界面控制項 322
12.2 組件例子 323
12.3 開始 324
12.3.1 創建初始套用 324
12.3.2 在Domino Designer透視圖中增加包資源管理器 325
12.3.2 增加一個Java源資料夾 325
12.4 構造一個組件 327
12.4.1 創建一個UI組件擴展類 326
12.4.2 為UI組件擴展創建定義標籤的.xsp-config檔案 328
12.4.3 創建一個Renderer並且在套用配置中進行註冊(faces-config.xml) 331
12.4.4 快速測試套用來驗證到目前為止我們的功能OK 333
12.5 使用組件屬性 334
12.5.1 組件Properties和Attributes 334
12.5.2 為組件添加一個Property 334
12.5.3 State Holder:在請求之間保存狀態 335
12.5.4 指定簡單Properties 335
12.5.5 繼承xsp-config Properties 336
12.6 創建初始的xsp-config定義 339
12.6.1 創建base.xsp-config檔案 339
12.6.2 創建和base.xsp-config檔案中組屬性定義對應的接口 342
12.6.3 在Domino Designer中重新訪問組件屬性 344
12.6.4 定義複雜屬性 344
12.6.5 完成UISpinner組件的xsp-config配置檔案 353
12.6.6 完成UI組件擴展,UISpinner 360
12.6.7 完成UISpinnerRenderer渲染器 363
12.7 創建使用UISpinner組件的套用實例 367
12.7.1 測試新UI組件擴展 367
12.7.2 創建Backing Bean 368
12.7.3 註冊Backing Bean 369
12.7.4 創建最終版本的測試應用程式 370
12.7.5 好看的外觀 373
12.7.6 測試以保證所有的功能可用 373
12.8 從這裡到哪裡去 374
12.8.1 XPages擴展API開發者指南 374
12.8.2 XPages擴展庫 374
12.8.3 IBM DeveloperWorks 375
12.9 結語 375
第13章 Notes客戶機中的XPages 376
13.1 總體思考 376
13.2 Notes客戶機中的XPages入門 378
13.3 三、二、一……起飛 379
13.4 書籤 380
13.5 脫機工作 382
13.6 XPages在客戶機與Web中的區別 385
13.7 其他微妙的區別 386
13.8 XPages,Notes的好公民 388
13.9 enableModifiedFlag和disableModifiedFlag的介紹 390
13.10 管理標籤選項卡視窗 392
13.11 Notes連結vs Domino連結 396
13.12 一些調試技巧 400
13.13 XPages和組合應用程式 402
13.13.1 創建一個XPages應用程式組件 403
13.13.2 創建一個組件來監聽您的XPages組件 404
13.13.3 組裝組合應用程式:聚合XPages討論庫組件和Google視窗小部件 406
13.13.4 一個組件可以同時接收和發布事件 410
13.14 進一步探索組合應用程式 412
第五部分 套用用戶體驗
第14章 XPages主題 417
14.1 它曾經是這樣的…但現在不是了 417
14.2 通過樣式進行美化 418
14.2.1 手動設定樣式屬性 422
14.2.2 理解style屬性如何使用 424
14.2.3 通過計算動態生成style屬性值 424
14.3 通過樣式類進行美化 425
14.3.1 不勞而獲 426
14.3.2 了解如何使用styleClass屬性 430
14.3.3 動態計算styleClass屬性值 432
14.3.4 擴展的styleClass和style屬性 434
14.4 主題 438
14.4.1 什麼是主題 438
14.4.2 主題可以做什麼 439
14.4.3 主題架構和繼承 440
14.4.4 主題的使用 446
14.4.5 主題資源 453
14.4.6 資源路徑 460
14.4.7 主題屬性、themeId、控制項定義、控制項屬性 466
14.5 結語 477
第15章 國際化 478
15.1 概述 478
15.2 使用本地化選項 478
15.2.1 本地化資源束檔案 480
15.2.2 設定本地化選項 480
15.2.3 測試本地化應用程式 483
15.2.4 翻譯器 484
15.2.5 合併XPage的修改 486
15.2.6 陷阱! 488
15.3 本地化計算表達式和JavaScript 490
15.3.1 添加一個資源束 490
15.3.2 本地化計算表達式 492
15.3.3 本地化客戶機JavaScript 493
15.4 本地化腳本庫 493
15.4.1 伺服器端腳本庫 493
15.4.2 客戶機腳本庫 494
15.5 啟用國際化 495
15.6 XPages中的區域 496
15.7 廢棄的區域代碼 499
15.8 結語 500
第六部分 性能、可擴展性和安全
第16章 套用性能和可擴展性 503
16.1 黃金法則 503
16.2 了解請求處理生命周期 504
16.2.1 GET請求和JSF生命周期 504
16.2.2 POST請求和JSF生命周期 505
16.3 降低CPU使用率 505
16.3.1 GET vs POST請求 506
16.3.2 局部更新 509
16.3.3 局部執行模式 511
16.4 降低記憶體使用率 514
16.4.1 HTTPJVMMaxHeapSize和HTTPJVMMaxHeapSizeSet參數 514
16.4.2 xsp.persistence.*屬性 514
16.4.3 dataCache屬性 515
16.5 結語 516
第17章 安全性 517
17.1 Notes/Domino安全性和XPages 517
17.1.1 伺服器層的安全性 517
17.1.2 應用程式層的安全性 518
17.1.3 設計元素層的安全性 520
17.1.4 文檔層的安全性 525
17.1.5 工作站執行控制列表(ECL)層的安全性 527
17.1.6 有用的資源 527
17.2 讓我們從一個例子開始 527
17.2.1 開始創建一個應用程式 527
17.2.2 實現訪問控制列表 529
17.2.3 使用您的簽名來簽名XPages 530
17.3 可程式性限制(Programability Restrictions) 530
17.3.1 Sign or Run Unrestricted Methods and Operations域 531
17.3.2 Sign Agents to Run on Behalf of Someone Else域 531
17.3.3 Sign Agents or XPages to Run on Behalf of the Invoker域 532
17.3.4 Sign Script Libraries to Run on Behalf of Someone Else域 532
17.4 受限操作(Restricted Operation) 532
17.5 XPages安全檢查 533
NSF類載入器橋接(ClassLoader Bridge) 534
17.6 Notes客戶機的XPages安全性 534
執行控制列表(ECL) 535
17.7 活動內容過濾 537
17.8 公共許可權(Public Access) 539
17.8.1 為XPages設定公共許可權 539
17.8.2 在XPages中檢查公共許可權 540
17.9 SessionAsSigner 540
17.10 XPages Java安全異常的故障診斷 542
17.11 結語 542
第七部分 附錄
附錄A XSP編程參考 547
附錄A.1 XSP標籤參考 547
附錄A.2 XSP Java類 548
附錄A.3 Notes/Domino Java API類 549
附錄A.4 XSP JavaScript偽類 550
附錄B XSP樣式類參考 552
附錄B.1 XSP CSS檔案 552
附錄B.2 XSP樣式類 552
附錄C 有用的XPages技術網站 556

相關詞條

相關搜尋

熱門詞條

聯絡我們