您的位置:首页 > 编程语言 > Java开发

WebMVC框架 之 Struts

2015-08-31 16:07 232 查看
         在上一篇博客中我们介绍了WebMVC框架主要实现的功能,它为我们提供了基础性服务,使我们在基于MVC模式的开发上变得简单灵活、可配置。本篇文章将主要介绍WebMVC框架中的Struts主要的内容。

 

开发流程

基于Struts的基本开发流程如下图所示:



在web.xml中配置好ActionServlet所拦截的请求,Struts提供的ActionServlet作为前端控制器,将会对客户端请求进行处理,其处理的主要内容还是和上一篇博客中介绍到的内容相同:如图中所示,ActionServlet主要是读取struts-config.xml中的配置信息截取URL地址、转换表单数据类型、封装表单数据、分发请求到Action(业务控制器)、获取转向信息进行转向……
可以看出Struts主要是对MVC中的C进行了增强,使我们不必过多的去关心具体转向的逻辑判断功能等。

主要内容

Struts的主要功能总结如下图所示:



       上图中,列出了Struts为开发人员提供的主要功能服务,其中Controller部分是主要内容,涵盖了基于Struts的开发流程中需要掌握的内容。

       核心对象里:

              ActionServlet、Action作为控制器前面已经重点提过;

              ActionForward封装转向信息,也是在执行完Action内的方法需要给ActionServlet返回的对象

              ActionMapping封装的信息,其实是针对struts-config.xml中的配置来说的,提供了对前面几个对象的运行时支持,也就是说在服务启动时,将配置信息已经封装到了ActionMapping中,程序运行过程中,主要是从中获取相关配置,进而执行操作。

              除以上核心对象外,ActionForm对象也是Struts的一大特点,它主要封装表单提交数据,ActionServlet在接收到浏览器请求后,调用注册好的类型转换器将请求中的表单数据进行类型转换,然后封装到具体的ActionForm中,进而解决了手动转换表单数据的繁琐问题。

 

        不得不提的是,为了减少配置量、代码量以及应对灵活处理的要求,Struts对ActionForm、ActionForward都提供了动态创建的机制,ActionForm不是必须要写的,如果有必要,可以采用配置的方式动态创建。ActionForward也可以在程序内部动态创建,灵活应对转向页面的不同需求。

        另外,在减少配置、减少代码量方面,Struts根据约定优于配置的思想,也提供了模式匹配以及使用DispathAction减少Action个数的功能

        国际化方面,Struts基于java的国际化处理(Locale、ResourceBundle等)进行了进一步的封装。首先国际化资源文件由BaseName+Locale.property命名存储,ActionMessage进行存储传递,页面JSP上,采用Struts提供的标签很方便的读取。其余Struts的异常处理结合比较紧密。

 


总结

通过Struts的学习、实践,掌握了基于MVC的开发流程,也明白了一个WebMVC框架大致提供的功能,这也为后面其他相类似框架的使用提供了大概的方向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: