Struts2 Action属性注入详解与环境搭建

需积分: 9 3 下载量 31 浏览量 更新于2024-08-18 收藏 365KB PPT 举报
"为Action的属性注入值-struts2入门教程" Struts2是一个基于MVC设计模式的Web应用框架,它是在WebWork2的基础上发展起来的。与它的前辈Struts1相比,Struts2有着显著的优势,比如无侵入式设计、强大的拦截器机制、内置类型转换器以及对多种视图技术的支持等。 在Struts2中,Action是业务逻辑的核心,它负责处理用户的请求。为了给Action的属性注入值,Struts2提供了依赖注入的功能。在上述例子中,`HelloWorldAction` 类有一个名为 `savePath` 的私有属性,拥有对应的getter和setter方法。在配置文件中,`<param>` 节点被用来为 `savePath` 属性注入值,例如设置 `savePath` 为 "/images"。 配置文件的部分如下: ```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> ``` 这里的 `<param>` 节点指定了 `savePath` 属性的值,当Action被实例化并执行时,Struts2会自动调用相应的setter方法,将 "/images" 赋值给 `savePath`。 Struts2的无侵入式设计意味着开发者可以在不依赖Servlet API的情况下编写Action,这提高了代码的可测试性和可维护性。此外,拦截器(Interceptor)是Struts2的一大亮点,它们允许开发者实现AOP(面向切面编程),如权限控制、日志记录等功能。通过定义拦截器链,可以灵活地控制Action执行前后的处理流程。 Struts2还提供了内置的类型转换器,简化了从请求参数到对象属性的转换过程。相比于Struts1,Struts2无需深入其底层实现来注册自定义类型转换器。此外,Struts2支持多种表现层技术,包括JSP、FreeMarker和Velocity,这样可以根据项目需求选择合适的视图技术。 对于输入验证,Struts2提供了细粒度的控制,可以在Action级别或方法级别进行验证,而不是像Struts1那样只在整个表单级别进行。Struts2的国际化支持也很强大,允许在全局、包或Action范围内管理资源文件,从而实现多语言的显示。 在搭建Struts2开发环境时,需要确保获取到所有必要的jar文件,并配置好Struts2的配置文件(通常为struts.xml)。还需要在`web.xml`中添加Struts2的过滤器配置,以便启动Struts2的MVC框架。 Struts2是一个功能丰富的MVC框架,它的设计使得开发者能够更高效、更灵活地构建Web应用程序。通过依赖注入、拦截器、类型转换器等特性,Struts2提供了比Struts1更优秀的开发体验。