Struts旅程(四)MVC向struts MVC框架演变过程(四)

2014-11-24 02:50:14 · 作者: · 浏览: 7
ess.jsp /query_error.jsp

p>

这样我们就可以读取配置文件来进行相应的操作。每个action对应着一些信息,它的class,执行成功以及执行失败的配置。我们在读取配置文件的时候可以把这些放到Map对象中。代码如下所示。

ActionMapping
                                                   {
                                                             private String path;
                                                             private String type;
                                                             Map forwardMap;
                                                   }
                                                   
                                                  forwardMap
                                                   {
                                                             key="success";
                                                             value="/del_success.jsp"
                                                             key="error";
                                                             value="/del_error.jsp";
                                                   }
                                                   
                                                  Map map = new HashMap();
                                                   map.put("/servlet/delUser",);
                                                   map.put("/servlet/addUser",);
                                                   map.put("/servlet/modifyUser",);
                                                   map.put("/servlet/queryUser",);
                                                   
                                                   
                                                   //如果是删除的ActionMapping存储如下:
                                                   actionMapping
                                                   {
                                                             path="/servlet/delUser";
                                                             type="com.bjpowernode.servlet.DelUserAction";
                                                             forwardMap
                                                             {
                                                                    key="success",value="/del_success.jsp";
                                                                    key="error",value="/del_error.jsp";
                                                             }
                                                  }
                                                   String path ="/servlet/delUser";
                                                   
                                                   
                                                   //根据截取的URL请求,到Map中取得本次请求对应的Action。
                                                   ActionMapping actionMapping =(ActionMappint)map.get(path);
                                                   
                                                  // 取得本次请求对应的Action类的完成路径。
                                                   String type =actionMappint.getType();//com.bjpowernode.servlet.DelUserAction
                                                   
                                                  //通过反射动态实例化Action
                                                   Aciton action =(Action)class.forName(type).newInstance();
                                                   
                                                   
                                                   //取得action后传递过去。动态调用ACtion中的execute方法。
                                                   String forward =action.execute(request,response);
                                                   
                                                   //根据路径完成转向。
                                                   request.getRequestDispatcher(forward).forward(request,response);


我们用时序图来描述上述调用过程(如图4.2)。

\

图4.2

Struts就是采用上述思路。Struts框架是把上图中前端控制器servlet进行了封装,我们只要继承struts的Action去调用业务逻辑和转向。读取配置文件的工作也是封装到了struts框架中。前篇讲解了struts框架的应用实例,我们可以进行对比。

版本五 采用struts框架

采用struts框架完成登录示例。


这样我们对struts由来,以及struts封装了哪些东西从而方便了程序员,不再重复的写重复的代码。下一篇