Struts2 Action属性注入详解与框架优势

需积分: 3 9 下载量 56 浏览量 更新于2024-08-18 收藏 365KB PPT 举报
"这篇教程介绍了如何在Struts2框架中为Action的属性注入值,以及Struts2框架的基本特点和优势。" 在Struts2框架中,为Action的属性注入值是通过配置文件实现的,这体现了Struts2的依赖注入功能。在给出的示例中,`HelloWorldAction` 类有一个名为 `savePath` 的私有属性,它有一个对应的 getter 和 setter 方法。在`struts.xml`配置文件的`<package>`内,`<action>`标签定义了一个名为 `helloworld` 的Action,并指定了其类 `cn.itcast.action.HelloWorldAction`。通过`<param>`节点,我们能够为 `savePath` 属性设置默认值,这里是 "/images"。这样,当Action被实例化时,Struts2会自动调用相应的 setter 方法,将 "/images" 赋值给 `savePath`。 Struts2框架是在WebWork2的基础上发展起来的,与Struts1相比,它有许多显著的优点。首先,Struts2采取了无侵入式设计,它的应用并不直接依赖ServletAPI和StrutsAPI,降低了代码的耦合度。相比之下,Struts1的Action类需要继承自 `Action` 类并实现 `execute` 方法,这被称为侵入式设计。 其次,Struts2引入了拦截器(Interceptor)机制,这使得开发者可以通过拦截器实现面向切面编程(AOP),例如进行权限控制、日志记录等功能。拦截器使得业务逻辑和框架功能分离,提高了代码的可维护性。 此外,Struts2内置了类型转换器,能够自动将请求参数转换为所需类型,减少了手动转换的工作量。而在Struts1中,如果需要自定义类型转换,通常需要注册自定义的BeanUtil转换器。 Struts2还支持多种视图技术,包括JSP、FreeMarker、Velocity等,提供了更大的灵活性。它的输入验证功能允许针对特定方法进行,解决了Struts1中验证范围较广的问题。另外,Struts2提供了全球化资源管理,可以在全局、包或Action范围内配置国际化信息。 为了搭建Struts2的开发环境,你需要获取所需的jar文件,这通常可以从Apache Struts的官方网站下载。然后,编写Struts2的配置文件(如`struts.xml`),最后在`web.xml`中配置Struts2的前端控制器(Front Controller)以启动MVC框架。这些步骤构成了一个基本的Struts2应用程序开发环境。