本文转载自:http://www.iteye.com/wiki/taojintianxiastruts2/1579-4-why-use-struts2?
新版本的Struts2.0是struts 的action架构和webwork的融合体.依照Struts2.0.1的发布公告,一些关键特性如下 :
l 设计简单: 使用抽象类而不是接口是Struts1的一个设计上的问题,这已经在Struts2中得到了解决.在Struts2中绝大多数类都是基于接口的,并且它的绝大多数核心接口都是独立于HTTP的.Struts2的Action类是独立于框架的,可视为单纯的POJO.框架的组件都设法保持松耦合
l 单纯的Action : Action都是单纯的POJO.任何含有execute()方法的java类都可以当作Action类来使用.甚至我们始终都不需要实现接口.反转控制会在开发Action类的时候得到介绍过,这能让Action中立于底层框架.
l 不再使用ActionForm : ActionForm特性不再在Structs2中出现.简单的JavaBean即可对Action直接传递参数.不再需要全部使用String类型的参数.
l 简单的测试 : Struts2的Action是独立于HTTP并且中立于框架的.这使得Struts2的程序可以很容易的在没有模拟对象的情况下测试.
l 巧妙的默认值 : 大多数配置元素都设有一个根据需要设定的默认值.甚至根据需要基于XML的默认配置文件都可以进行重写.
l 改良的结果集 : 不像Struts1中的ActionForward,Struts2的结果集灵活的提供了多种类型的输出,事实上这促进了响应的准备工作.
l 更好的标签特性 : Struts2可以添加样式表驱动标记,这使我们创建相同的页面仅用更少的代码.Struts2的标签更有效而且是面向结果的.Struts2的标签标记可以通过修改基础样式表来修改.个别的标签标记可以通过编辑FreeMarker的模板来修改.JSP和FreeMarker都完全得到了支持.
l 引入注释 : 在Struts2程序中,除了XML和Java properties 配置文件外,Java 5的注释也可以作为一种选择.注释使得XML的使用降至最低.
l 有状态的Checkbox : Struts2中的checkbox不需要对false值进行特殊处理.
l 快速开始 : 很多改变无需重启web容器即可实现.
l 自定义控制器 : Struts1可以自定义每一个模块的请求处理器,如果需要,Struts2可以自定义每一个Action的请求处理.
l 易与Spring整合 : Struts2的Action与Spring是友好的,只需添加Spring的bean
l 轻巧的插件 : Struts2可以通过添加一个Jar文件来进行扩展,不再需要手动配置!
l 支持AJAX : AJAX主题对提升程序交互有着重要的意义.Struts2框架提供了一套标签来AJAX化你的程序甚至DOJO.AJAX特性包括:
1. AJAX客户端验证.
2. 支持远程表单提交.(同样适用于submit标签)
3. 先进的div模板提供动态重载部份HTML
4. 先进的模板提供远程加载和计算Javascript的能力.
5. AJAX-only选项卡面板的实现
6. 丰富的发布/订阅事件模型
7. 自动交互完善标签
相关推荐
Struts2是一个强大的Java web框架,它提供了丰富的功能来构建MVC(模型-视图-控制器)架构的应用程序。在Struts2中,Tag库是其核心组件之一,极大地简化了视图层的开发,使得开发者可以更方便地创建动态网页。本篇将...
通过以上介绍,我们可以看出Struts2标签库为Web开发带来了很多便利。在实际项目中,开发者可以根据需要选择合适的标签来构建用户界面,提高开发效率。在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签...
- **Struts2** 则使用OGNL来进行类型转换,并且为常见的对象类型提供了内置的转换器。此外,Struts2的校验机制更加完善,支持链式校验子属性,使得校验规则更加灵活和精细。 #### 七、Action执行控制 - **Struts1*...
Struts2 Action 对象为每一个请求产生一个实例,因此没有线程安全问题。Struts1 Action 是单例模式并且必须是线程安全的,因为仅有 Action 的一个实例来处理所有的请求。 5. Struts2 的配置文件: Struts2 的配置...
在配置Struts2时,通常会使用一个名为`struts.xml`的配置文件,该文件定义了应用程序的行为和组件。为了在开发环境中获得更好的代码辅助和提示,我们需要使IDE(例如Eclipse)理解`struts.xml`文件的结构,这通常...
**1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得各个组件易于替换和扩展。 - **支持多种视图技术**:...
### Struts2下载地址及相关...综上所述,Struts2是一个功能强大且易于使用的Web应用框架,通过合理的版本选择、详细的配置以及有效的问题解决策略,可以充分发挥其优势,为开发高质量的Web应用程序提供强有力的支持。
Struts2是一个强大的Java web框架,它极大地简化了MVC(模型-视图-控制器)应用的开发。在Struts2框架中,标签库是其重要组成部分,它提供了丰富的标签来帮助开发者更方便地构建用户界面。`struts2-tags-API`就是...
- **Struts2** 为每个请求创建新的Action实例,解决了线程安全问题,同时也更易于管理和测试。 5. **Servlet依赖** - **Struts1.x** 的Action类直接依赖于Servlet API,这使得测试变得更加困难。 - **Struts2** ...
- **前端控制器(实际上为一个过滤器)拦截所有类型的请求:** 在Struts2架构中,所有的HTTP请求首先会被一个名为`ActionMapping`的过滤器捕获,这个过滤器起到了前端控制器的作用。 - **Action代理类负责加载Struts...
5. 插件漏洞:Struts2有许多可选插件,如Pentaho Reporting Plugin、Struts2 PDF Plugin等,这些插件可能引入额外的漏洞。 "Struts2 vulns checker"工具的工作原理通常包括以下步骤: 1. 扫描分析:工具会遍历...
### Struts2 标签库详解 Struts2框架作为Struts1的升级版,在功能性和易用性方面有了显著的提升。对于那些已经熟悉Struts1的人来说,学习Struts2将是一个相对平滑的过程。Struts2标签库是其核心组件之一,它提供了...
一、为Struts2.0做好准备 在开始Struts2的开发之前,你需要确保环境已经准备就绪。首先,确保你的开发环境中安装了JDK,并且版本支持Struts2。然后,添加Struts2的依赖库到你的项目中,这通常通过Maven或Gradle的...
Struts2标签API是Struts2框架中一个重要的组成部分,它提供了一系列的预定义标签,使得开发者能够更方便地在JSP页面中处理业务逻辑和展示数据。这些标签极大地简化了视图层的开发,提高了代码的可读性和可维护性。 ...
在配置方面,Struts2不再局限于单一的`webwork.properties`文件,而是引入了多个配置文件,如`struts-default.xml`、`struts-plugin.xml`、`struts.xml`以及可选的`struts.properties`。这使得配置更加灵活,可以...
2. 请求通过一系列过滤器,包括可选的ActionContextCleanUp过滤器,帮助Struts2与其他框架集成。 3. FilterDispatcher被调用,它会询问ActionMapper来确定是否需要调用特定的Action。 4. 如果需要,FilterDispatcher...
Struts2通过整合大量的标签库、提供丰富的插件支持以及强健的后台处理逻辑,为企业级Web应用开发提供了便利。OGNL(Object-Graph Navigation Language)是Struts2框架中的一个重要组件,用于在Web应用中访问和操作...
《基于Struts2的餐饮收费系统详解》 在软件开发领域,尤其是企业级应用中,Struts2框架因其强大的MVC(Model-View-Controller)架构支持,被广泛应用于构建Web应用程序。本项目“基于Struts2的餐饮收费系统”正是...
其中,ActionContextCleanUp过滤器是可选的,但它在Struts2与其他框架(如SiteMeshPlugin)的集成中扮演了重要角色,确保了环境的干净与隔离,防止不同请求之间的数据污染。 #### 3. FilterDispatcher调用 接下来...