Struts2框架:访问Action的URL路径配置与优势解析

需积分: 0 1 下载量 193 浏览量 更新于2024-08-17 收藏 1.73MB PPT 举报
本文将深入探讨如何设置访问HelloWorld应用的路径,主要关注Struts1和Struts2框架中的路径配置。在Struts1中,访问Action的URL路径是通过`<action>`标签的`path`属性来指定的,而在Struts2中,路径则由包的命名空间和Action的名称两部分组成。 在Struts1框架中,我们通常会这样配置`<action>`标签来定义访问路径: ```xml <action path="/primer/helloWorldAction.action" class="cn.itcast.primer.HelloWorldAction"> <result name="success">/success.jsp</result> </action> ``` 这里的`/primer/helloWorldAction.action`就是访问HelloWorldAction的URL路径。要注意,完整路径会包括服务器地址、端口号以及内容路径。 而在Struts2框架中,路径配置有所改变。我们使用`<package>`和`<action>`标签来定义命名空间和Action名称: ```xml <package name="primer" namespace="/primer" extends="struts-default"> <action name="helloWorldAction" class="cn.itcast.primer.HelloWorldAction"> <result name="success" type="dispatcher">/success.jsp</result> </action> </package> ``` 在这个例子中,`/primer`是命名空间,`helloWorldAction`是Action的名称,所以访问路径会是`/primer/helloWorldAction.action`。同样,这里也可以加上`.action`后缀来访问Action。 接下来,我们来详细讨论Struts2框架及其优势。 Struts2是一个强大的Model-View-Controller(MVC)框架,为Web应用程序开发提供了一系列解决方案,包括页面导航控制、输入验证、统一布局、可扩展性、国际化和本地化支持、Ajax集成、防止表单重复提交等问题。 Struts2的主要优点包括: 1. 无侵入式设计:与Struts1不同,Struts2的应用程序不依赖于Servlet API或Struts API,降低了组件之间的耦合度,使得代码更易于维护和扩展。 2. 拦截器机制:Struts2引入了拦截器,允许开发者实现面向切面编程(AOP),例如权限拦截、日志记录等,提高了代码的可复用性和灵活性。 3. 类型转换:Struts2内置了类型转换器,自动将请求参数转换为所需的类型,无需像Struts1那样手动注册类型转换器。 4. 多视图技术支持:Struts2支持JSP、FreeMarker、Velocity等多种视图技术,使得开发者可以根据项目需求选择最适合的表示层技术。 5. 输入验证:Struts2提供了更灵活的输入验证机制,可以在全局、包级或Action级别进行验证,并支持国际化的资源文件管理,大大改善了Struts1的验证功能。 从Struts1迁移到Struts2时,需要注意Struts2并非Struts1的简单升级,而是基于WebWork框架的重构。尽管名字相似,但它们的设计理念和实现方式有很大区别。迁移过程需要重新审视和调整现有的代码结构,以适应Struts2的架构。