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}”。
分享到:
相关推荐
在Autumn框架下,JSP可以与框架的其他组件无缝集成,比如控制器、模型和视图,从而提供了一种直观的方式来创建交互式的Web界面。 此外,Autumn框架可能包含了诸如MVC(Model-View-Controller)设计模式、IoC...
【autumn-2.0主题】是一个专门为WordPress设计的网站主题,无任何修改,保持了原始的开发者意图。这个主题经过优化,确保与最新的WordPress版本兼容,为用户提供了一个稳定且功能丰富的网站展示平台。WordPress是一...
eSir openwrt 高大全 2022 autumn legacy 固件版本
实验资源包含了一个用户界面,这使得非专业用户也能直观地与系统交互,体验宋词生成的过程。用户界面的设计对于技术的普及和教学至关重要,因为它降低了技术使用的门槛,使得更多的人可以接触到自然语言处理这一前沿...
【描述】中的“数库公司的抓取项目”表明这是一项数据抓取(Web Scraping)工作,旨在从互联网上获取信息并存储到数据库中。提到“难度轻重不一”,这可能意味着项目涵盖了不同层次的抓取任务,适合不同程度的学习者...
Autumn是一个Web 子系统的集合,旨在提供通用的Web 系统解决方案。 它具有可扩展性和稳定性,您可以基于它开发自己的 Web 系统。 此外,您可以加入我们一起维护它,只要您对它感兴趣。 请将问题提交到相应的项目中,...
web_programming2020_autumn
Autumn 项目介绍 采用Spring、Spring Boot、Redis、MyBatis、Shiro、Druid框架开发,搭载mysql数据。 如果你厌烦了MyBatis中需要手动创建表的事情,这个项目非常适合你,自动为你生成表。 从此你不在需要导入sql文件...
autumn_presentation2
这个模版可能包含了对原始PJBlog默认界面的改进和定制,旨在提升用户在浏览和写作时的舒适度。 【描述】中提到的"PJBlog2 autumn-red"很可能是指PJBlog的第二个主要版本与秋季主题相结合的模版变体。PJBlog是一个...
JAVA 极速WEB+ORM框架 Autumn Autumn 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发Swift、学习简单、功能强大、轻量级、易扩展。 有效提高web项目的开发效率!为您节约更多时间,去陪恋人、家人和...
autumn.m
autumn_myst
autumn_presentation
标题中的"PyPI 官网下载 | autumn-0.3.2.tar.gz"指的是Python的包索引(PyPI)上发布的开源项目“autumn”的0.3.2版本,该版本被打包成一个名为“autumn-0.3.2.tar.gz”的归档文件。PyPI是Python开发者分享和发布...
2022-Autumn-01.ipynb
标题中的"PyPI 官网下载 | e-autumn-0.0.26.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的开源软件包,名为“e-autumn”。这个版本是0.0.26,且以tar.gz格式打包,这是一种常见的源代码分发方式,通常...
Apache Tomcat是一个开源的Web应用服务器,特别以其作为Java Servlet和JavaServer Pages(JSP)容器而闻名。它被广泛用于开发和部署基于Java技术的Web应用程序。在本例中,我们讨论的是Apache Tomcat 7.0.42版本,专...
标题"PJBlog2 Autumn"指的是一个特定版本的PJBlog,这是一款开源的博客系统,用于构建个人或小型团队的在线博客。"Autumn"可能是这个版本的主题或设计风格,暗示了该版本可能采用了与秋季相关的色彩、设计元素或功能...