先说下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的方法, 其它方法以此类推 )
最后欢迎大家访问我的个人网站:1024s