`
tom_seed
  • 浏览: 318734 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

WebX框架使用说明

阅读更多

前言 

标准MVC开源框架有很多(Struts、SpringMVC、Webx),对于生活在开源世界里面的码农来说SpringMVC、Struts是接触比较多,也是最熟悉的框架。

 

知己知彼

以配置SpringMVC为例,我们常常关注的点主要有以下几个方面:

1.web.xml文件里面请求分配器的配置(DispatcherServlet)。如下图:

拦截以do结尾的HTTP请求。

 

2.视图控制器(ViewResolver),velocity、freemarker、jsp等,以jsp为例。如下图:

配置了所有视图都到/WEB-INF/view里面去找。

 

3.拦截器(Interceptor)。如下图:

 

4.适配器(Handleradapter)。如下图:

配置url请求和处理函数间的mapping关系。

 

5.请求路径映射(HandlerMapping)。如下图:

通过HandlerAdapter来实际调用处理函数。

 

三两下配置就能够起工程成功访问了。

注:为什么以SpringMVC为例,这里主要有两个方面的原因

  • SpringMVC与后面我们要说到的Webx一样都是基于Spring容器。
  • SpringMVC比较简单

Webx框架

主页:http://openwebx.org/

框架说明书:http://openwebx.org/docs/Webx3_Guide_Book.html

 

框架搭建

执行环境:windows、maven

执行步骤:

1.新建一个目录,例如:D:\workspace。注意在盘符目录下是无法执行成功的。

2.执行如下命令:

mvn archetype:generate -DgroupId=com.alibaba.webx -DartifactId=mywebx -Dversion=1.0-SNAPSHOT -Dpackage=com.alibaba.webx.mywebx -DarchetypeArtifactId=archetype-webx-quickstart -DarchetypeGroupId=com.alibaba.citrus.sample -DarchetypeVersion=1.0 -DinteractiveMode=false

命令执行完后,你会看见一个新目录:mywebx。这个项目其实是Maven从webx在中央库的原型生成的一个骨架,原型是archetype-webx-quickstart。

 

框架结构

Webx解决了单工程中包含不同架构配置,例如:根据业务需要在工程中区分同一会员用户不同权限、业务功能、页面展示时,可以通过业务角度切分工程并配置webx-account.xml、webx-gateway.xml等。方便业务并行开发。

(1)业务功能模块具体实现;

(2)业务功能模块的页面展示;

(3)针对业务功能模块后台简单校验;

(4)针对该业务功能的总配置;

 

WEB-INF文件夹下各个配置文件说明

  • logback.xml:日志配置;
  • web.xml:WEB工程初始化配置信息;
  • webx.xml:webx通用配置,webx容器初始化的Bean能够让所有子业务容器依赖。
  • webx-app1.xml:webx子业务配置,子业务配置能够创建spring容器,但子业务容器之间是不能互相注入的。

具体内容可以查看框架说明书《3.1. Webx的初始化》

 

WEB-INF/common文件夹下各个配置文件说明

  • pipeline.xml:拦截器配置文件,相当于SpringMVC(Struts)中的Interceptor。
  • pipeline-exception.xml:异常拦截配置文件。
  • resources.xml:资源文件加载配置,负责资源的重定向、重命名等。
  • uris.xml:外部地址url调用配置文件。
  • webx-component-and-root.xml:配置模板渲染引擎、映射规则等。
  • webx-component.xml:定义模板页面能够直接使用的工具类。

从这些配置可以看出,webx与我们接触的SpringMVC、Struts类似,只不过前者控制更加细粒度化,而后者我们更多的是使用开源的封装,所以配置量较少。

 

代码结构及编写

对于开发人员来说,最关心的莫过于上手去用这个框架。从工程接收请求到服务器响应并返回信息这整个过程,webx有自己的规则,与我们所接触的开源框架有所区别。如下图:

根据Http请求中所带参数中是否有action,Webx在代码层执行的内容也有所区别。

 

不带action参数请求

webx执行步骤如下:

步骤一、若控制层screen中存在Login.java代码,则执行Login.java代码。

步骤二、执行模板层layout中login.vm(若layout中没有对应名字的布局模板,则会调用默认模板default.vm)。

步骤三、执行模板层screen中的login.vm。

 

带action参数请求

webx执行步骤如下:

步骤一、执行控制层action中LoginController.java代码,指定类必须存在,否则会出现404异常。

步骤二、若控制层screen中存在Login.java代码,则执行Login.java代码。

步骤三、执行模板层layout中login.vm(若layout中没有对应名字的布局模板,则会调用默认模板default.vm)。

步骤四、执行模板层screen中的login.vm。

 

控制层action、screen层编写

Webx规定了action、screen层的默认入口函数为execute,即当类名与路径能够匹配的时候(路径与类名可以以驼峰命名方式,也可以中间以下划线“_”来连接,只有首字母能够忽略大小写),webx会执行类名下execute()方法。示例:

 

工程中常用的方法

控制层action:处理用户操作动作,比如登录、提交数据等。

控制层screen:处理页面展示所需内容。

在老版本的webx中(version小于webx3.0.9)screen层一个Java类只能处理一个页面。而action层可以处理多个不同业务动作。

 

action层代码有所变化,具体示例如下:

(1)提交时必须指明访问的具体方法,且需要有“event_submit_”前缀。

(2)指定具体的action时,需要注意包路径。

 

拦截器

Webx中针对拦截器的配置主要集中在pipeline.xml中。在日常业务开发中免不了要进行登录、权限等验证,而这部分业务作为拦截器再适合不过了。详细配置方式可以查看框架说明书《6.3.3. Pipeline的使用》。

  • 大小: 15.8 KB
  • 大小: 6.7 KB
  • 大小: 6.7 KB
  • 大小: 2.6 KB
  • 大小: 4.9 KB
  • 大小: 20.5 KB
  • 大小: 11.6 KB
  • 大小: 2.8 KB
  • 大小: 4.2 KB
  • 大小: 19.3 KB
  • 大小: 12.2 KB
  • 大小: 20.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics