Inside Web Dynpro for Java (2nd Edition)
by Chris Whealy
Hardcover, 532 pages
ISBN 978-1-59229-092-5
Fully updated and significantly expanded, this 2nd edition of the bestselling developers' guide teaches readers how to obtain the best results from Web Dynpro for Java in release SAP NetWeaver 7.0.
Starting with the origins of Web Dynpro, the component concept, design principles and the phase model, this book leaves no questions about the backgrounds open. Then, learn everything you need to know about basic development topics like the context at design- and runtime, the handling of UI elements, and multi-language applications. Experienced developers will further benefit greatly from chapters on advanced topics like dynamic context manipulation, navigation and error handling, or the Adaptive RFC layer.
The author's extensive experience with developing and implementing Web Dynpro applications since the very first Web Dynpro release, the invaluable tips, best practices and caveats he shares with his readers make this book a must-read reference for every serious Web Dynpro for Java developer.
Highlights
* Web Dynpro Component Concept
* Designing a Web Dynpro Application
* The Web Dynpro Phase Model
* The Context at design- and runtime
* Working with UI Elements
* Multilanguage Applications
* Navigation and Error Handling
* The Adaptive RFC Layer
* JCo Connection Management
About the Author(s)
Chris Whealy is a Web Dynpro Java Expert in the SAP NetWeaver Regional Implementation Group (RIG) EMEA. He has been working with Web Dynpro since 2002. Since then, Chris has written numerous articles and web presentations about various aspects of Web Dynpro technology, often speaks at SAP TechEd, and is the author of several SAP training courses.
Table of Contents
Part I: ... Background ... 29
1 Introduction ... 29
... 1.1 ... Why Did SAP Decide to Build Their Own Web Development Framework? ... 29
... 1.2 ... What Is Web Dynpro? ... 30
... 1.3 ... Causes of Poor Web Dynpro Implementations ... 32
... 1.4 ... How Web Dynpro Differs from Other Web Development Tools ... 32
... 1.5 ... The Fundamental Difference Between Web Dynpro and Other Web Development Tools ... 34
... 1.6 ... A Quick History Lesson ... 35
... 1.7 ... The Design Philosophy Behind Web Dynpro ... 38
... 1.8 ... The Influence of MVC on Web Dynpro ... 40
... 1.9 ... The Influence of SAP's Requirements on Web Dynpro ... 45
... 1.10 ... The Influence of Focus Groups on Web Dynpro ... 47
... 1.11 ... What Do I Need To Understand To Be Successful with Web Dynpro? ... 47
... 1.12 ... Is Writing a Web Dynpro Program Just a Matter of Writing Models, Views, and Controllers? ... 48
Part II: ... The Fundamental Concepts ... 53
2 The Web Dynpro Component Concept ... 53
... 2.1 ... A Typical MVC Architecture ... 53
... 2.2 ... The Web Dynpro Component Concept ... 55
... 2.3 ... Inside the Web Dynpro Component ... 58
... 2.4 ... What Do the Different Parts of the Component Do? ... 60
... 2.5 ... Inside a Web Dynpro Controller ... 65
... 2.6 ... Communication Between Controllers ... 79
... 2.7 ... Web Dynpro Applications or "Where Does My Component Sit in the Big Scheme of Things?" ... 83
... 2.8 ... Managing Web Dynpro Components ... 87
3 ... Designing a Web Dynpro Application ... 89
... 3.1 ... The SAP Component Model ... 89
... 3.2 ... Architectural Concepts of the NWDI ... 95
... 3.3 ... Building Web Dynpro Applications Using the NWDI ... 98
... 3.4 ... Preparation and Planning ... 103
... 3.5 ... Design ... 113
... 3.6 ... Implementation ... 129
4 ... Web Dynpro Phase Model ... 141
... 4.1 ... Phase Model Processing and Component Instantiation ... 143
... 4.2 ... Web Dynpro Hook Methods ... 143
... 4.3 ... The Relationship Between Phase Model Processing and Web Dynpro Windows ... 144
... 4.4 ... Phase Model Processing ... 145
... Part 1 ... 145
... Part 2 ... 158
... 4.5 ... Summary ... 159
Part III: ... Basic Development ... 163
5 ... The Context at Design Time ... 163
... 5.1 ... Nodes ... 163
... 5.2 ... Attributes ... 164
... 5.3 ... Node and Attribute Data Types ... 164
... 5.4 ... Context Attribute Data Types that Can Supply Data to UI Elements ... 167
... 5.5 ... Terminology Concerning Nodes and Attributes ... 168
... 5.6 ... What's the Difference Between Value Nodes and Model Nodes? ... 169
... 5.7 ... The Most Important Node Properties to Understand ... 171
... 5.8 ... Should Node Names Be Singular or Plural? ... 177
... 5.9 ... General Naming Conventions ... 178
... 5.10 ... Identifying a Specific Node Attribute ... 179
... 5.11 ... Calculated Attributes ... 180
... 5.12 ... Internal Context Mapping ... 186
... 5.13 ... External Context Mapping ... 187
... 5.14 ... Supply Functions ... 189
... 5.15 ... Dispose Functions ... 194
... 5.16 ... Coding Principles for Supply and Dispose Functions ... 200
... 5.17 ... Recursive Context Nodes ... 200
... 5.18 ... Fundamental Principles of the Context ... 205
6 ... Context Structure at Runtime ... 207
... 6.1 ... Generated Classes ... 207
... 6.2 ... Working with Value Nodes ... 213
... 6.3 ... Working with Model Nodes ... 230
... 6.4 ... Working with Recursive Nodes ... 233
... 6.5 ... Using the WDCopyService ... 233
7 ... UI Elements ... 237
... 7.1 ... How are UI Elements Stored Within a View Controller? ... 237
... 7.2 ... Editing a View Layout ... 238
... 7.3 ... Putting Data on the Screen ... 239
... 7.4 ... Avoiding a Possible Source of Confusion ... 244
... 7.5 ... Layout Managers ... 246
... 7.6 ... Composite UI Elements ... 254
... 7.7 ... UI Element Events and View Controller Actions ... 258
... 7.8 ... Parameter Mapping ... 264
... 7.9 ... Generic UI Services ... 272
... 7.10 ... Using Messages and the Message Manager ... 278
8 ... Writing Multilanguage Applications ... 287
... 8.1 ... Internationalization ... 287
... 8.2 ... Externalization ... 287
... 8.3 ... Web Dynpro i18n Concept ... 288
... 8.4 ... S2X: SAP's Use of the XLIFF Standard ... 289
... 8.5 ... Storing Language-Specific Text in XLF Files ... 290
... 8.6 ... Translating XLF Files ... 291
... 8.7 ... Use of the S2X Editor Within NWDS ... 291
... 8.8 ... Editing Message Pool XLF Files ... 292
... 8.9 ... Runtime Locale Determination ... 294
Part IV: ... Advanced Development ... 297
9 Dynamic Context Manipulation ... 297
... 9.1 ... Dynamic Addition of an Unmapped Context Node ... 297
... 9.2 ... Dynamic Addition of a Mapped Context Node ... 303
10 ... Advanced Use of the UI ... 311
... 10.1 ... Working with Tree UI Elements ... 311
... 10.2 ... Efficient Use of Actions to Enable and Disable UI Elements ... 319
... 10.3 ... Programmatic Assignment of Actions to UI Element Objects ... 320
... 10.4 ... Accessing Existing UI Elements in a View Layout ... 322
... 10.5 ... Introduction to Dynamic View Generation ... 331
... 10.6 ... The Principles of Dynamic View Construction ... 332
... 10.7 ... Dynamic Construction of a UI Element Hierarchy ... 335
... 10.8 ... Implementing an OVS ... 348
11 ... Navigation and Error Handling ... 359
... 11.1 ... Navigation Processing ... 359
... 11.2 ... Suspend and Resume Plugs ... 368
... 11.3 ... Error Handling ... 376
12 ... Components at Runtime ... 387
... 12.1 ... Web Dynpro Components and Polymorphism ... 387
... 12.2 ... Pop-Up Windows ... 392
... 12.3 ... Application and URL Properties ... 403
13 ... The Adaptive RFC Layer ... 407
... 13.1 ... A Brief History Lesson ... 407
... 13.2 ... General Introduction to BAPIs ... 413
... 13.3 ... Custom-Written RFC Modules ... 417
... 13.4 ... Introduction to the Adaptive RFC Layer ... 418
... 13.5 ... Creating Adaptive RFC Models ... 421
... 13.6 ... Structuring a Model ... 425
... 13.7 ... Explanation of Generated Model Classes ... 426
... 13.8 ... Web Dynpro Models and Development Components ... 433
... 13.9 ... Using Model Objects in a Web Dynpro Controller ... 434
... 13.10 ... Altering a Model Object's Logical System After It Has Been Created ... 437
... 13.11 ... A Simple Example Using Context Model Nodes at Runtime ... 439
... 13.12 ... Adapting to Changes in an RFC Interface ... 459
14 ... JCo Connection Management ... 467
... 14.1 ... Connecting to an SAP System ... 467
... 14.2 ... Identifying the Correct Backend System ... 469
... 14.3 ... The JCo Pool Concept ... 474
... 14.4 ... Pool Usage at Runtime ... 477
... 14.5 ... Model Scope Type ... 482
... 14.6 ... Calculating JCO Pool Size ... 484
... 14.7 ... Metadata Connections ... 485
... 14.8 ... Impact of JCo Connections on the SAP Gateway Process ... 486
... 14.9 ... Relationship Between JCO Destinations and ABAP Sessions ... 489
... 14.10 ... Avoiding the Read–Write–Read Problem ... 492
A ... Web Dynpro Naming Placeholders ... 499
A.1 ... Web Dynpro Component Architecture ... 499
A.2 ... Web Dynpro Controllers ... 499
A.3 ... Model Objects ... 500
A.4 ... NetWeaver Development Infrastructure Entities ... 500
A.5 ... Context Entities ... 500
A.6 ... Generic and Composite Abbreviations ... 501
A.7 ... Subscripts for Composite Placeholders Using the SAP Recommended Suffixes ... 502
A.8 ... AS Java Placeholders ... 503
B ... Naming Conventions ... 505
B.1 ... General Rules for Naming ... 505
B.2 ... Naming Conventions for Coding Entities ... 505
B.2.1 ... Applications: ${na} = ${a}App ... 505
B.2.2 ... Components: ${nc} = ${c}Comp ... 506
B.2.3 ... Component Interface Views: ${nciv} = ${w}InterfaceView ... 506
B.2.4 ... Component Usage: ${nu} = ${nc}${p}Inst or ${cid}${p}Inst ... 506
B.2.5 ... Custom Controllers: ${ncc} = ${cc}Cust ... 506
B.2.6 ... Inbound Plugs: ${npi} = ${pin}In ... 506
B.2.7 ... Models: ${nm} = ${m}Model ... 507
B.2.8 ... Outbound Plugs: ${npo} = ${pout}Out ... 507
B.2.9 ... Component Interface Definition: ${ncid} = ${cid}CompI ... 507
B.2.10 ... Component Interface View Definition: ${nciv} = ${ncid} ... 507
B.2.11 ... Views: ${nv} = ${v}View ... 507
B.2.12 ... Viewsets: ${nvs} = ${vs}Viewset ... 508
B.2.13 ... Windows: ${w} = ${nc} or ${nc}Window or Window ... 508
C ... Exercise to Display a File System Using a Recursive Context Node Structure ... 509
C.1 ... Create a New Web Dynpro DC ... 509
C.2 ... Create a Web Dynpro Component ... 510
C.3 ... Create a Java Bean to Represent a Directory Entry ... 510
C.4 ... Import the Java Bean as a Model ... 512
C.5 ... Component Controller Configuration ... 513
C.5.1 ... Declare Model Usage ... 513
C.5.2 ... Context Configuration ... 513
C.5.3 ... Method Declarations and Coding ... 514
C.6 ... View Controller Configuration ... 517
C.6.1 ... Context Configuration ... 517
C.6.2 ... Create an Action ... 517
C.6.3 ... Editing the View Layout ... 518
C.6.4 ... View Controller Implementation ... 518
C.7 ... Create an Application ... 519
C.8 ... Comment on the Use of Standard SAP Icons ... 520
D ... ABAP Coding ... 521
E ... Dictionary Structures ... 525
F ... The Author ... 527
Index
评分
评分
评分
评分
《Inside Web Dynpro for Java》这本书真的是一本内容翔实、条理清晰的开发指南。作为一名长期从事Java开发的开发者,我虽然熟悉Java EE的各种框架,但对Web Dynpro for Java的了解还比较有限。这本书为我打开了一扇新的大门。我尤其喜欢书中关于View-Controller生命周期管理的详细讲解,它清晰地描绘了从Component创建、事件触发到数据更新的整个流程,并详细解释了每个阶段的关键方法和作用。这对于我理解用户交互的响应机制至关重要。我曾在一个项目中遇到过UI元素无法响应用户操作的问题,通过回顾书中关于Event Handling和Controller Logic的章节,我找到了问题的症结所在,并成功地解决了它。此外,书中关于Data Binding和Model Management的讲解也让我受益匪浅,它清晰地展示了如何将UI元素与数据模型进行关联,以及如何有效地管理数据的读取和写入。这本书的实用性和指导性都非常强,是我学习Web Dynpro for Java的必备良师。
评分在阅读《Inside Web Dynpro for Java》之前,我对Web Dynpro for Java的理解仅限于表面,对于其深层原理和最佳实践知之甚少。这本书彻底改变了我的看法。它以一种非常结构化的方式,将Web Dynpro for Java的各个组成部分和它们之间的交互关系描绘得淋漓尽致。我尤其欣赏作者在讲解Component Model时,将Component看作是一个独立的、可复用的构建块,并详细阐述了Component的API设计、属性、事件和方法如何协同工作。这让我在设计自己的Web Dynpro Component时,能够更加注重模块化和可维护性。书中的Data Binding部分也给我留下了深刻的印象,作者通过生动的例子,讲解了如何将UI元素与Context中的数据进行绑定,以及如何处理数据的CRUD操作。这对于我构建动态、响应式的用户界面至关重要。我曾遇到过在UI元素上显示大量数据的场景,通过学习书中的Data Binding技巧,我能够更高效地实现数据加载和更新,极大地提升了用户体验。这本书的深度和广度都超出了我的预期,是我在Web Dynpro for Java领域的重要参考文献。
评分《Inside Web Dynpro for Java》这本书真的是一本非常宝贵的资源,尤其对于我这种需要快速掌握Web Dynpro for Java开发技能的开发者来说。它没有废话,直击核心,用最清晰、最直接的方式介绍了Web Dynpro for Java的关键概念和技术。我尤其喜欢书中关于View-Controller生命周期管理的讲解,它详细介绍了从Component的创建到销毁的整个过程,以及每个阶段的关键方法和作用。这让我能够更好地理解用户交互是如何被处理的,以及如何在正确的时机执行相应的业务逻辑。我曾在一个项目中遇到过UI元素无法正确更新的问题,通过回顾书中关于Event Handling和View Rendering的章节,我找到了问题的根源,并成功地解决了它。此外,书中关于Data Binding和Model Mapping的讲解也让我受益匪浅,它清晰地展示了如何将UI元素与数据模型进行关联,以及如何有效地管理数据的读取和写入。这本书的实用性和指导性都非常强,是我学习Web Dynpro for Java的绝佳参考。
评分拿到《Inside Web Dynpro for Java》这本书,我就迫不及待地开始阅读了。我一直在寻找一本能够深入理解Web Dynpro for Java核心概念的书籍,而这本书正好满足了我的需求。它不仅仅是简单地介绍API,而是从更深层次的角度,讲解了Web Dynpro for Java的设计哲学和架构原理。我特别喜欢书中关于Context Model的讲解,它清晰地阐述了Context是如何在Component之间传递数据,以及如何进行数据的管理和操作。这让我能够更有效地在复杂的应用程序中进行数据流的控制。我曾在一个项目中遇到过数据同步的问题,通过学习书中关于Context的属性和方法,我成功地实现了数据的实时更新,避免了数据不一致的情况。此外,书中关于Navigation Controller和Service Manager的介绍也让我受益匪浅。它详细地说明了如何在Web Dynpro for Java应用程序中实现页面之间的跳转,以及如何调用后端服务。这本书的例子丰富,讲解细致,是我学习Web Dynpro for Java的必备良师。
评分这本书简直就是一座宝藏,尤其是对于我这样还在摸索Web Dynpro for Java的开发者来说。我之前尝试过一些在线教程和零散的文档,但总感觉不得其法,很多概念性的东西总是难以真正理解,更不用说在实际项目中应用了。当我拿到《Inside Web Dynpro for Java》这本书时,简直是如获至宝。它没有直接抛给我一堆代码,而是循序渐进地引导我理解Web Dynpro for Java的核心架构和设计理念。从一开始的Component Model到View-Controller生命周期,再到Context和Data Binding,这本书都用非常清晰易懂的方式进行了阐述。我特别喜欢它在解释每个概念时,都会辅以大量的实例代码和图示,这让我能够直观地看到这些理论是如何转化为实际功能的。例如,它对View Controller的生命周期解释得非常透彻,让我明白了在什么时候调用哪些方法,以及如何正确地处理用户交互和数据更新。而且,这本书并没有局限于基本概念,还深入探讨了更高级的主题,比如UI Element的定制、个性化设置、以及与后端系统的集成。我尤其对书中关于部署和性能优化的章节印象深刻,这些内容在实际项目中往往是容易被忽略但又至关重要的环节。总的来说,这本书不仅是一本技术手册,更像是一位经验丰富的导师,在我学习Web Dynpro for Java的道路上给予了极大的帮助和指导。
评分我一直觉得Web Dynpro for Java的学习曲线比较陡峭,尤其是在理解其MVC架构和生命周期方面。然而,《Inside Web Dynpro for Java》这本书恰好弥补了这一缺憾。它以一种非常系统化和逻辑化的方式,将Web Dynpro for Java的各个组件及其交互过程进行了清晰的梳理。我特别喜欢书中对View Controller生命周期的深入剖析,它详细介绍了从Initialization到Rendering再到Event Handling的整个过程,并解释了每个阶段的关键方法和作用。这让我能够更好地理解用户交互是如何被处理的,以及如何在正确的时机执行相应的业务逻辑。我曾在一个项目中遇到过用户界面响应缓慢的问题,通过回顾书中关于Event Handling和Asynchronous Processing的章节,我找到了优化的方向,并成功地解决了性能瓶颈。此外,书中关于Data Binding和Model Management的讲解也让我受益匪浅,它清晰地展示了如何将UI元素与数据模型进行关联,以及如何有效地管理数据的读取和写入。这本书不仅提供了理论知识,更重要的是提供了解决实际问题的方案和技巧。
评分《Inside Web Dynpro for Java》这本书不仅仅是一本技术指南,更是一本能够帮助开发者构建健壮、高效Web Dynpro for Java应用的“秘籍”。我非常欣赏作者在讲解Component Model时,将Component视为一个独立的、可复用的服务单元,并详细阐述了Component之间的通信机制。这让我能够更好地设计和组织我的Web Dynpro Component,提高代码的可重用性和可维护性。书中关于UI Element的自定义和扩展部分也给了我很大的启发。我曾需要实现一些非常特殊的UI交互效果,通过学习书中关于Event Handling和JavaScript Integration的章节,我能够将客户端脚本与Web Dynpro for Java的后端逻辑 seamlessly 地结合起来,实现了预期的功能。此外,书中对Web Dynpro for Java的异常处理和错误日志记录进行了详细的介绍,这对于我在实际项目中进行问题诊断和调试非常有帮助。我曾经花费了大量的时间去排查一个棘手的Bug,但通过参考书中关于错误处理的章节,我很快找到了问题的根源。这本书的实用性和指导性都非常强,强烈推荐给所有Web Dynpro for Java的开发者。
评分《Inside Web Dynpro for Java》这本书的深度和广度都超出了我的预期。我是一名有几年Java EE开发经验的开发者,但之前接触Web Dynpro for Java的时间并不长,很多东西都需要从头学起。这本书从基础的架构介绍到高级的应用技巧,都进行了详尽的讲解。我尤其对书中关于UI Element的详细描述和使用方法印象深刻。它不仅仅是罗列了各种UI Element的属性和事件,更重要的是解释了为什么以及如何使用它们来构建用户友好的界面。例如,书中关于Table Control的使用技巧,包括如何实现分页、排序、过滤以及自定义单元格渲染,都给我提供了很多宝贵的思路。我曾在一个项目中需要展示一个非常复杂的数据表格,通过学习这本书,我能够有效地利用Web Dynpro for Java提供的强大功能,快速地实现了一个高性能、高可用的表格组件。此外,书中关于Session Management和Navigation方面的内容也让我获益匪浅。我明白了Web Dynpro for Java是如何处理用户会话和页面之间的跳转的,这对于构建复杂的业务流程至关重要。这本书的语言风格非常专业且严谨,但同时又不失易懂性,非常适合有一定Java基础但初学Web Dynpro for Java的开发者。
评分我一直认为,要真正掌握一门技术,不仅要了解其“如何”工作,更要理解其“为何”如此设计。《Inside Web Dynpro for Java》这本书恰恰做到了这一点。它不仅仅是一本API的堆砌,而是深入剖析了Web Dynpro for Java的设计理念和架构模式。我特别欣赏作者在讲解Component Model时,强调了Component的独立性、封装性和可重用性,这让我对如何构建模块化、可维护的Web Dynpro for Java应用有了更清晰的认识。书中关于UI Element的详细介绍和使用技巧,也给了我很大的启发。我曾在一个项目中需要实现复杂的表单校验和用户输入反馈,通过学习书中关于InputField和Validation的章节,我能够有效地利用Web Dynpro for Java提供的功能,构建出用户友好且健壮的表单。此外,书中关于Web Dynpro for Java的部署和性能优化部分也让我学到了很多实用的技巧,这些内容在实际项目中往往是容易被忽略但又至关重要的环节。这本书的专业性和深度都非常出色,是我提升Web Dynpro for Java技能的不二之选。
评分说实话,在翻阅《Inside Web Dynpro for Java》之前,我对Web Dynpro for Java的理解一直停留在“能够写出一些界面”的层面,对于其背后的原理和最佳实践几乎一无所知。这本书彻底改变了我的看法。它以一种非常结构化的方式,将Web Dynpro for Java的各个组成部分和它们之间的交互关系描绘得淋漓尽致。我尤其欣赏作者在讲解Component Model时,将Component看作是一个独立的、可复用的构建块,并详细阐述了Component的API设计、属性、事件和方法如何协同工作。这让我在设计自己的Web Dynpro Component时,能够更加注重模块化和可维护性。书中的Data Binding部分也给我留下了深刻的印象,作者通过生动的例子,讲解了如何将UI元素与Context中的数据进行绑定,以及如何处理数据的 CRUD 操作。这对于我构建动态、响应式的用户界面至关重要。我曾遇到过在UI元素上显示大量数据的场景,通过学习书中的Data Binding技巧,我能够更高效地实现数据加载和更新,极大地提升了用户体验。此外,这本书还对Web Dynpro for Java的国际化和本地化进行了深入的探讨,这对于我们开发面向全球用户的应用来说是必不可少的。我受益匪浅,真的感觉自己对Web Dynpro for Java有了更深层次的理解和掌握。
评分 评分 评分 评分 评分本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有