Struts2 Action属性注入详解

需积分: 11 0 下载量 97 浏览量 更新于2024-07-12 收藏 318KB PPT 举报
"本文主要介绍了如何在Struts2框架中为Action的属性注入值,以及Struts2框架相比Struts1的优势和搭建开发环境的基本步骤。" 在Struts2框架中,为Action的属性注入值是一项重要的功能,它使得我们可以方便地在配置文件中设置Action对象的属性值,而无需在Action的执行方法内部手动处理。这个过程是通过依赖注入(Dependency Injection,简称DI)来实现的。例如,在给定的描述中,我们有一个`HelloWorldAction`类,其中定义了一个`savePath`属性,并提供了对应的getter和setter方法。在Struts2的配置文件中,`<param>`节点用于指定属性的名称和要注入的值。如下所示: ```xml <package name="itcast" namespace="/test" extends="struts-default"> <action name="helloworld" class="cn.itcast.action.HelloWorldAction" > <param name="savePath">/images</param> <result name="success">/WEB-INF/page/hello.jsp</result> </action> </package> ``` 这里,`savePath`属性被注入了字符串`"/images"`。当Action被实例化时,Struts2框架会自动调用setter方法,将配置的值赋给相应的属性。 Struts2是在WebWork2的基础上发展起来的,相比于Struts1,它具有许多优势。首先,Struts2采用了无侵入式设计,与Servlet API和Struts API的耦合度较低,使得应用可以独立于这些API运行。相比之下,Struts1的Action类通常需要继承自`Action`类,这被称为侵入式设计。 其次,Struts2引入了拦截器(Interceptor)机制,这是一个强大的AOP(面向切面编程)工具,可以用来实现如权限控制、日志记录等多种功能。开发者可以自定义拦截器,根据业务需求组合使用。 此外,Struts2提供了内置的类型转换器,可以自动将请求参数转换为所需类型,简化了数据类型转换的过程。而在Struts1中,实现类似功能通常需要注册自定义的类型转换器。 Struts2还支持多种视图技术,如JSP、FreeMarker和Velocity,这提供了更多的灵活性。对于输入验证,Struts2允许对特定方法进行校验,解决了Struts1中验证机制不够灵活的问题。 在国际化方面,Struts2提供了全局、包和Action级别的资源文件管理,便于实现多语言支持。 为了搭建Struts2的开发环境,我们需要完成以下几步: 1. 下载Struts2的jar文件,可以从Apache Struts官方网站获取。 2. 编写Struts2的配置文件,如struts.xml,配置Action及其属性注入等。 3. 更新`web.xml`文件,配置Struts2的前端控制器DispatcherServlet,以启动框架。 通过以上步骤,我们就能够创建一个基本的Struts2应用,并利用其强大的特性来构建Web应用程序。