自定义Struts框架分析

对Struts框架的产生原因、解决的问题、以及实现途径和思想进行分析,加深对框架的理解。

作者 jooop 日期 2017-02-17
自定义Struts框架分析

一、对原有controller分析

过程:

  1. 获取请求数据、封装
  2. 调用service处理业务请求
  3. 跳转到相应界面

问题:

controller中不止起控制作用,也做业务处理。
当业务复杂、数据多的时候不利于维护和开发、代码复用性不高。

二、解决思想:

抽取出controller过程中跳转到相应界面部分,封装为核心控制器,将获取请求数据、封装和具体调用service处理业务请求交给相应的action处理。
在核心控制器中创建Action对象,调用其方法返回目标URI,然后在核心控制器中进行跳转处理。

三、实现过程中的问题:

核心控制器如何知道要创建哪一个Action对象

  1. 获取请求路径中的URI
    例:http:localhost:8080/test/login.action,获取到login
  2. 编写xml将login和LoginAction相对应起来。
  3. 在核心控制器中使用dom4j对xml解析,使用反射机制,创建LoginAction对象。

Action返回的URI固定,不便于维护修改

  1. 在Action中返回相应的标记(字符串,如”sucess“)。
  2. 编写xml将标记和要跳转的页面对应起来,并指定跳转方式。
  3. 在核心控制器中读取配置文件使用dom4j解析,根据返回值进行跳转。