新版本的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. 自动交互完善标签
分享到:
相关推荐
在实际项目中,我们通常会创建一个Spring配置文件,如`spring-struts.xml`,在这个文件中声明需要管理的Action类,以及相关的拦截器和事务管理策略。同时,Struts的配置文件(struts-config.xml或struts2的struts....
- Struts2 DTD 是XML文档类型定义,它规定了struts2配置文件(如struts.xml或struts-default.xml)的语法和元素。这些元素定义了Action、结果、拦截器等配置,使得开发者可以声明式地配置应用行为。 2. **struts-...
`org.springframework.web.struts`模块允许在Struts Action中使用Spring的DI功能。通过配置Spring的XML,Action实例可以在运行时动态注入所需的依赖,如DAO、Service等,减少了代码的耦合度,提高了可测试性和可...
5. **配置文件**:如struts.xml,展示了如何配置Struts 2应用,包括Action定义、结果类型、拦截器链等。 6. **测试**:包含单元测试和集成测试,用于验证框架的正确性和性能。 总的来说,Struts 2.3.16.3版本的...
检查所有的`.struts.xml`配置文件,确保它们与新版本兼容。可能需要更新或删除不再支持的配置选项。 **7. 修复动作类和结果类型** 升级可能会引入不兼容的动作类或结果类型。确保所有动作类都遵循新版本的API,并...
Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。Struts2的核心是Action类,它负责处理用户请求,与模型进行交互,并将结果返回给视图。在Struts2的版本...
4. **struts.multipart.maxSize**: 文件上传的最大大小,单位为字节。 5. **struts.action.extension**: 行动映射的扩展名,默认是`action`,但可以根据需要修改。 6. **struts.enable.SlashesInActionNames**: 是否...
了解了`FilterDispatcher`的基本功能和工作流程后,开发者可以根据需求对其进行配置,比如添加自定义拦截器,调整过滤器的优先级,或者使用Struts 2后续版本提供的`FilterActionMapping`以提高性能和灵活性。...
3. 类加载器问题:Struts2使用了自定义的类加载机制,这为攻击者提供了利用的机会。通过特定的请求,攻击者可能可以加载并执行恶意类,进一步执行RCE。 4. 漏洞利用库:攻击者通常会利用已知的Struts2漏洞库,如CVE...
受影响的版本范围为Struts 2.3.5至2.3.31,以及2.5至2.5.10。此漏洞被评估为高风险等级。 - **S2-046**:与S2-045类似,也是Jakarta Multipart解析器存在的漏洞,通过操纵HTTP请求头中的Content-Type值来触发远程...
2. **配置文件的调整**:Struts2的配置文件(如struts.xml)可能会因版本升级而需要调整。例如,新的版本可能会引入新的拦截器或动作配置,需要检查并更新配置以充分利用新特性。 3. **API变化**:新版本可能移除了...
4. struts.objectFactory struts.objectFactory 属性指定 Struts 2 默认的 ObjectFactory Bean,该属性默认值是 spring。 5. struts.objectFactory.spring.autoWrite struts.objectFactory.spring.autoWrite 属性...
4. **配置更新**:根据官方文档更新配置文件,如struts.xml或web.xml,以适应新版本的要求。 5. **测试**:升级后,进行详尽的功能测试和安全性测试,确保所有功能正常且没有新的安全漏洞引入。 6. **监控**:升级...
<constant name="struts.plugin.packages" value="org.apache.struts2.sitemesh"/> ``` 3. 配置Sitemesh的全局装饰器(可选): 在`web.xml`中添加以下配置: ```xml <filter-name>decorator <filter-class>...
Struts2是一个非常流行的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可扩展且易于维护的企业级应用程序。Struts2.5.14.1是该框架的一个版本,它引入了若干增强功能和修复了已知...
- 如何配置和使用Struts 2的插件 - 安全性改进及如何防止常见攻击 - 深入理解Action的生命周期和Result的处理流程 总之,这两个Struts 2版本的源码提供了丰富的学习资源,帮助开发者提升对MVC框架的理解,提高开发...
2. **配置环境**:为每个框架配置相应的配置文件,如Spring的`beans.xml`,Struts 2的`struts.xml`,以及Hibernate的`hibernate.cfg.xml`。 3. **整合Struts 2和Spring**:通过Struts的Spring插件实现Action类的...
4. struts.objectFactory:指定Struts 2的默认ObjectFactory Bean,用于创建和管理对象。默认值取决于所使用的集成框架,如Spring。 5. struts.objectFactory.spring.autoWire:控制Spring框架的自动装配模式,默认...
配置文件(通常为struts.xml)定义了Action与Result的映射关系。 2. **拦截器(Interceptors)**:Struts2的核心功能之一,拦截器可以插在Action调用之前和之后,实现如日志、事务管理、验证等通用功能,增强了代码...