`

Struts 2总结

阅读更多
Struts 2总结
一、概述

Struts 2整合了两个优秀的MVC框架:传统的Struts和WebWork。不管是Struts还是WebWork,都是MVC框架领域大名鼎鼎的成熟框架,这保证了Struts 2作为实际开发框架的成熟性,Struts 2保留了Struts 1的简单易用性,并且充分利用了WebWork的拦截器机制(其实就是AOP思想),将Struts 2发展成一个具有高度可扩展性的框架。



1、模式1与模式2

对于非常小型的Web站点,如果后期的更新、维护工作不是特别大,可以使用Model 1的模式来开发应用,而不是使用Model 2的模式。虽然Model 2提供了更好的可扩展性及可维护性,但增加了前期开发成本。



2、MVC思想

MVC并不是Java语言所特有的设计思想,也并不是Web应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范。MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。

3、其它常用的MVC框架

(1).JSF

准确地说,JSF是一个标准,而不是一个产品。

(2).Tapestry

Tapestry并不是一种单纯的MVC框架,它更像MVC框架和模板技术的结合,它不仅包含了前端的MVC框架,还包含了一种视图层的模板技术,使用Tapestry完全可以与Servlet/JSP API分离,是一种非常优秀的设计。

       Tapestry实现了视图逻辑和业务逻辑的彻底分离。

       Tapestry使用组件库替代了标签库,Tapsetry是完全组件化的框架。

       Tapestry具有很高的代码复用性,对于对页面要求灵活度相当高的系统,Tapestry是第一选择。

(3).Spring MVC

Spring提供了一个细致完整的MVC框架。该框架为模型、视图、控制器之间提供了一个非常清晰的划分,各部分耦合极低。Spring的MVC是非常灵活的,它完全基于接口编程,真正实现了视图无关。视图不再强制要求使用JSP,可以使用Velocity、XSLT或其他视图技术。甚至可以使用自定义的视图机制——只需要简单地实现View接口,并且把对应视图技术集成进来。Spring的Controllers由IoC容器管理。因此,单元测试更加方便。

  二、Struts 2框架的大致处理流程如下:

浏览器发送请求,例如请求/mypage.action、/reports/myreport.pdf等。

核心控制器FilterDispatcher根据请求决定调用合适的Action。

WebWork的拦截器链自动对请求应用通用功能,例如workflow、validation或文件上传等功能。

回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以是将数据保存到数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组件来处理用户的请求。

Action的execute方法处理结果信息将被输出到浏览器中,可以是HTML页面、图像,也可以是PDF文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FreeMarker等模板技术。

 

Struts 2的基本流程

       Struts 2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件。

       核心控制器:FilterDispatcher。(用户实现的Action类仅仅是Struts 2的Action代理的代理目标。)

业务控制器:业务控制器组件就是用户实现Action类的实例,Action类里通常包含了一个execute方法,该方法返回一个字符串——该字符串就是一个逻辑视图名,当业务控制器处理完用户请求后,根据处理结果不同,execute方法返回不同字符串   ——每个字符串对应一个视图名。Struts 2的模型组件:实际上,模型组件已经超出了MVC框架的覆盖范围。对于Struts 2框架而言,通常没有为模型组件的实现提供太多的帮助。

Struts 2的视图组件

Struts 2已经改变了Struts 1只能使用JSP作为视图技术的现状,Struts 2允许使用其他的模板技术,如FreeMarker、Velocity作为视图技术。 

三、Struts2精髓部分

1、Struts 2的配置文件有两份:

— 配置Action的struts.xml文件。— 配置Struts 2全局属性的struts.properties文件。

2、Struts 2的标签库也是Struts 2的重要组成部分。通过使用Struts 2的标签,开发者可以最大限度地减少页面代码的书写。

3、Struts 2的控制器组件是Struts 2框架的核心,事实上,所有MVC框架都是以控制器组件为核心的。正如前面提到的,Struts 2的控制器由两个部分组成:FilterDispatcher和业务控制器Action。

4、完成程序国际化

       定义国际化资源文件

       加载资源文件:struts.custom.i18n.resources=messageResource

       输出国际化信息



5、增加数据校验

       继承ActionSupport

       使用Struts 2的校验框架



6、Struts 2的类型转换



7、Struts 2的拦截器



8、文件的上传和下载

分享到:
评论

相关推荐

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    struts2总结大全

    本总结将深入探讨Struts2的核心概念、关键功能和实用技术,以帮助开发者全面理解并熟练运用这一框架。 一、Servlet模板 在Struts2中,Servlet模板是一种处理请求和响应的方式。它通过拦截器链对请求进行处理,然后...

    struts2总结项目总结

    在本项目总结中,我们将深入探讨Struts2的核心特性、工作原理以及如何在实际项目中应用。 一、Struts2框架基础 1. 动态方法调用(Dynamic Method Invocation,DMI):Struts2允许通过URL直接调用Action类的方法,...

    Velocity语法以及整合struts2总结

    【Velocity语法以及整合struts2总结】 Velocity是一个开源的Java模板引擎,它是Apache软件基金会的Jakarta项目的一部分。Velocity将HTML代码与业务逻辑分离,使得开发者可以专注于内容和设计,而不用关心数据如何...

    jsp到struts2总结.docx

    【JSP到Struts2总结】 JSP(Java Server Pages)是基于Java技术的一种服务器端网页编程技术,用于创建跨平台、跨Web服务器的动态网页。JSP网页由HTML、JavaScript、Java程序片段(scriplet)和JSP标记(tag)组成。...

    struts2 总结入门学习文档 教你如何搭建一个struts2环境

    struts2 总结入门学习文档 教你如何白手起家搭建Struts2开发环境、编写第一个struts2应用helloworld、属性介绍、接口、拦截器介绍、struts2标签等。93页

    我的struts2的总结

    根据提供的文件信息,我们可以整理出关于Struts2框架的一些关键知识点。尽管原文中的信息较为零散且不完整,但还是可以从中提炼出一些有价值的内容。接下来,我们将详细探讨这些知识点。 ### Struts2简介 Struts2...

    Struts2轻松入门,Struts2总结

    Struts2是一个强大的MVC(Model-View-Controller)框架,是Java EE应用程序开发中的重要组成部分。它在Struts1.x的基础上进行了大量的改进和优化,提供了更高效、更灵活的架构设计,使得开发者能够更容易地构建和...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    struts2总结第二章

    Struts2是一个强大的MVC框架,它提供了许多功能来简化Web应用开发,包括类型转换、属性访问、文件上传以及拦截器等。以下是基于标题和描述的详细知识点: **一、局部类型转换** 在Struts2中,我们可以自定义类型...

    struts2总结1

    Struts2,servlet模板,反射、xml解析、过滤器,IoC方式

Global site tag (gtag.js) - Google Analytics