一、webx的特色:
1.页面驱动
•先建模板、再建程序
•模板中“按需”取得工具对象(pull tools)
2.约定胜于配置
•基于规则展示页面
•screen/layout/control
二、基本目录结构
二、基本目录结构
三、页面布局
四、Turbine风格的目录结构
1、分为四种类型Module:control、layout、screen 和 action2、实际应用中,大部分的页面都是由两部分构成:模板和Java模块:
五、一个简单的页面、
5.1、
1.用户输入URL:
http://localhost:8081/index.htm2.分析URL取得target:
/index.vm3.根据target查找screen模板:
/screen/index.vm4.根据target查找screen模块的类:
xxx.module.screen.Index(如果没有找到该类)xxx.module.screen.Default(如果没有找到该类)
-- 如果还是没有找到就按默认类渲染页面
5.执行screen类,并渲染screen模板6.根据target查找layout模板:
/layout/index.vm(找不到)
/layout/default.vm(找到)7.渲染layout模板8.渲染在layout模板中引用的一个control:
menu.vm à查找并渲染/control/menu.vm (control可以有对应的类)
§Modules是基本编程模块:•Screen —— 用来处理页面显示逻辑的module•Control —— 和screen类似,但可以被别的screen或layout引用,•Action —— 处理用户提交表单的module§所有module都是一些普通的类:public class Module {
publicvoid execute(Context context);
}
需要有一个public void execute()方法
5.2、如何找到这些类的?
webx-sample.xml
<!-- 装载模块。 -->
<services:module-loader>
<ml-factories:class-modules>
<ml-factories:search-packagestype="$1"
packages="org.dueam.sample.sample.module.*" />
</ml-factories:class-modules>
</services:module-loader>
5.3、访问无模板的screen
假设有下面的URL(注意后缀):•http://localhost:8080/index.do那么WebX将不会查找index.vm这个模板,而是直接执行screen:•xxx.module.screen.Index什么时候要使用这种URL呢?•不使用模板的情形—— 模板只是一种文本生成技术,除此之外,还有其它技术。在某些情形下,使用模板不一定是最好的方法。•不需要返回可见的页面的情形—— 例如一个被机器回调的URL。•重定向到另一个页面的情形—— 有时一个页面自身不显示内容,而是重定向(内部/外部)到另一个页面。例如:支付宝的商家工具。
TTasdasdhasdjhsadrbine风格的目录结构urTTurbine风格的目录结构urbine风格的目录结构TTurbine风格的目录