我的WebX框架学习总结与心得分享
最近学习了webx框架, 利用博客园跟大家分享一下自己的学习心得;
周建旭 2014-08-21
网上关于webx的资料少的可怜, 怎么办? 这种情况下不用去求助别人求人只会耽误时间, 不用畏惧; 看文档写demo 就ok了;
API是最好的资料, webx官方有个pdf的中文文档提供下载, 建议在学webx之前, 先整体浏览一遍文档以便于把握webx框架的大体脉络, 第一遍看的过程不必钻牛角尖 ;
然后结合淘宝官方Michael Zhou的Petstore(宠物商店)例子对比一下文档(那块不清楚就看pdf文件); 先尝试着在例子基础上写个简单查询增删改, 然后在一步步深入即可;
maven环境搭建这里不提, 主要说一下webx的约定胜于配置; 什么是约定胜于配置呢? 不能停留在概念表面就像很多人说spring的aop都不知道体现在哪些地方, spring的强大之处自然就感觉不到;
先说下webx的request请求基本流程:
request请求-->>piepline解析target参数-->>表单验证-->>screen类或action类
每个模块都有对应的control, layout, screen这种结构和目录; layout是一个页面的布局即显示screen和control的内容, 一个页面只可以有且最多一个screen但可以有多个control;一个 screen中可以包含多个control;
java每个模块的包结构也要与页面的control, screen对应;特殊的如表单提交还需要action包用来处理表单提交的数据;如果请求找的是screen那么先到layout包下找与screen名称对应的layout如果没有就默认寻找default(例如找screen下的index.vm找到后就会去layout下找index.vm没有就找default.vm), 还有一点要注意如果screen页面要处理数据那么src下的模块对应的screen包中就要有与盛放screen资源页面名称对应的screen类(例如:index.vm找的就去找Index.java来处理数据返回数据可以通过context.put方法);control也是如此, 如果没有数据需要进行处理可以src下的模块的control包可以不要;
最后一种特殊的情况是没有screen页面直接请求src包下screen包下的类(相当于ajax)这种情况时请求路径不需要通过screen页面去找同名的screen类, 直接找screen类时需要在路径结尾加.json或.do
control通常用来定义通用的部件比如导航菜单, tab切换等; 通常使用execute方法
screen可以用来显示页面的主要内容, 比如查询出所有数据页面显示等, 如常用的表单, 表格等常规操作都可以定义到screen中; 通常使用execute方法
任何提交表单这个动作都要走action包下的类
action 可以用来处理表单提交的数据, 方法名为表单按钮的名称(比如:ame="event_submit_do_add_user" 就需要在action包下的类中有个doAddUser的方法, 其它方法以此类推 )