Autumn Web界面生成

Autumn Web界面生成,主要有几块工作要做:
一、把ViewData附到界面上去。
二、根据ViewSpec和ViewData创建DOM元素。
三、根据ViewSpec对刚才创建的DOM元素进行布局。
四、DOM元素和ViewData元素之间的绑定。
五、javascript脚本收集。

先看看第一块,把ViewData附到界面上去。
1、AbstractOutputHandler对象在handle方法中创建ViewCreator对象来生成视图。
2、ViewCreator拿到RootViewSpec和对应的ViewData,调用自身的createView方法。
3、在createView方法中调用createViewDataView方法,把ViewData以及下面的所有数据以div嵌套的方式挂到页面上。

接着是第二和第三块,放到一起来说。
1、ViewCreator通过setViewData方法和View对象交互,View对象通过createViewItem方法和ViewItem对象交互,ViewItem对象调用createContent方法创建UIElement和View对象。
2、ViewItem对象的createContent方法调用完成之后对其下的UIElement和View对象进行布局。View对象的createViewItem方法调用完成之后对其下的ViewItem对象进行布局。

然后是第四块,DOM元素和ViewData元素之间的绑定。
1、生成ViewData和其子元素的Div。
2、生成html的DOM元素。
3、ViewCreator对象在createView方法中调用View对象的closeout方法,在对应的DOM元素上绑定ViewData对应的Element ID。同时View对象把命令分发下去,让其子ViewItem对象调用各自的closeout方法,在ViewItem对应的DOM元素上绑定ItemData对应的Element ID。

最后是第五块,javascript脚本收集。
1、AbstractOutputHandler对象通过持有的View对象调用其getScript方法,从而调用该View对象的getScripts方法。
2、由View对象分发下去,让其拥有的ViewItem对象调用getScripts方法。
3、ViewItem对象收到请求后,分发命令,让其下的UIElement和View调用各自的getScripts方法。
4、调用完毕之后,返回脚本拼装起来的字符串。
5、在服务器端输出给浏览器端的时候,以content.html为模板,用脚本内容替换占位符“${scripts}”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值