Web Dynpro 基础知识(一)(转)

本文介绍了WebDynpro for ABAP的基础知识,包括采用MVC设计方法的组件结构、控制器类型及context mapping和data binding概念。深入探讨了context的组成及其属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结一下关于wda(web dynpro for abap)的基础知识。 web dynpro for abap采用了MVC的设计方法。一个web dynpro component包括window,views和component controller。window和view主要和UI有关。windows只是一种容器,在一个component内一个window可以包含任意多个view,而component controller只有一个。如果一个component不需要view,那么windows也就相应无需存在了。一个web dynpro component可以与一个URL关联,通过浏览器来访问,或者作为另一个web dynpro component的sub-component供调用。 web dynpro component的controller分为四类: component controller:这种类型的controller在一个web dynpro component内只存在一个,并且没有visual interface。 custom controller:这类controller是可选的,用于封装component controller的sub-function。 view controller:每一个view都有一个对应的view controller,负责与视图有关的逻辑,如检查用户的输入和处理user action。 window controller:一个window内只存在一个window controller,用于通过inbound plugs传递数据。 web dynpro 中有两个常提到的概念是context mapping和data binding。每个controller内部都会有一个context,用于存储controller所用的数据。context mapping提供了一种机制,供不同的controller之间交换数据。context mapping分为internal和extern两种。如果同一个component内的不同controller之间共享数据,这被成为internal context mapping;共享数据的controller不在同一个component之内,这被称为extern context mapping。要注意的是view controller一类不能作为context mapping的源,否则就违背了MVC的设计原则。data binding为数据在contex和UI元素之间自动(双向)传递提供支持。接下来再看看context这个东西。context是一个包含node和attribute的结构。每个context都有一个默认的root node,这个root node不能被修改或删除。一个node可以包含子元素(node和attribute),而attribute只能依附于其他node或context root node而存在。在同一个context内,每个node的名字必须是唯一的。一个node连同其子元素被合称为一个element。 context中的每个node都有两个重要的property: cardinality:这个属性给出了当前node collection在运行时(runtime)包含的元素数目的最小值和最大值。这个属性的取值包括0..1(仅允许0或1个元素),0..n(允许0或更多元素),1..1(仅允许一个元素),1..n(允许一个或多个元素)。 singleton:这个属性决定了子节点在实例化时是singleton还是不是singleton,因此它的值就是布尔值。在课程中在讲singleton时还提到了supply function,两者常在一起使用以实现lazy data instantiation。比如在加载一个包含多行的表时,每一行包含的更详细数据不会被首先加载,而只有在用户选中并查特定行时,与该行相关的数据在会被读取。
SAP_ABAP_WebDynpro开发(中文) http://scnblogs.techweb.com.cn/tcsapbw/archives/5.html WebDynpro For ABAP 基础 案例:WebDynpro环境准备 - 6 - 案例二: Tabtrip与close事件 - 10 - 案例三: HorizonalContextPanel及其事件 - 12 - 案例四: ContextPanel及其事件 - 18 - 案例五: 使用RowRepeater - 25 - 案例六: Table:Scroll以及header(append与delete) - 30 - 案例七: Table:Group(Column & Row) 以及firstActualRow,FirstVisiableRow - 34 - 案例八: Table: Filter - 41 - 案例九: Table: Sort - 46 - 案例十: Table: Row Popin 与 Cell Popin,以及Business Graphic - 53 - 案例十: Table: 使用TableSummaryCell作subtotal - 67 - 案例十二: Table: 实现TableSummaryCell的方法(展开或隐藏) - 72 - 案例十三: Table:动态创建并实现TableSummaryCell的方法(展开或隐藏) - 80 - 案例十四: Table:Context Change History的使用 - 89 - 案例十五: Table:Tree table(TreeByKeyTableColumn)- One level - 100 - 案例十六: Table:Tree table(TreeByKeyTableColumn)- multi level - 106 - 案例十七: Table:Tree table(TreeByKeyTableColumn)- Recursive Node - 112 - 案例十八: 使用DateNavigator - 121 - 案例十九: 使用RoadMap - 134 - 案例二十: 使用Phase Indicator - 149 - 案例二十: 使用Select Options - 156 - 案例二十二: 简单使用Reuse Component - 162 - 案例二十三: 使用OTR并进行翻译 - 166 - 案例二十四: 利用Request进行SE63中OTR的翻译 - 170 - 案例二十五: UI Element的居中显示(Vertical and horizonal) - 173 - 案例二十六: 使用Grid layout将UI element放置在不同的位置(左右缩进等) - 183 - 案例二十七: 使用NavigationList(使用Recursion Node) - 186 - 案例二十八: 使用CheckBox 和Checkbox Group - 193 - 案例二十九: 使用OVS - 197 - 案例三十: 使用Supply Function - 207 - 案例三十: 使用Message - 214 - 案例三十二:使用DropdownlistByKey 和DropdownlistByIndex - 223 - 案例三十三:使用External Window以及Dialog Boxes - 227 - 案例三十四:实现Input field的cursor定位 - 246 - 案例三十五:从View上实现WebDynpro的log out - 248 - 案例三十六:从Component Controller中实现WebDynpro的log out - 252 - 案例三十七:实现Mandatory Fields的check - 256 - 案例三十八:使用Assistance Class 案例三十九:WD防止Time out
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值