Struts2 Action搜索顺序详解

需积分: 9 2 下载量 152 浏览量 更新于2024-08-18 收藏 1.36MB PPT 举报
"这篇内容主要讨论了Struts2框架中Action名称的搜索顺序以及Struts2框架的特点和优势。" 在Struts2框架中,Action名称的搜索顺序遵循一定的规则,确保能正确找到对应的Action执行逻辑。具体步骤如下: 1. 首先,根据HTTP请求的URL获取请求路径的URI,比如`http://server/struts2/path1/path2/path3/test.action`。这里的`path1/path2/path3`被视为Action的命名空间(namespace)。 2. 然后,Struts2会尝试在`/path1/path2/path3`这个命名空间下查找名为`test`的Action。如果找到了,就会执行该Action。 3. 若在上述命名空间中未找到,系统会继续在`/path1/path2`这个较短的命名空间中查找`test` Action。 4. 接下来,如果仍然找不到,搜索会继续在`/path1`的命名空间内进行。 5. 最后,如果所有尝试的命名空间都没有找到匹配的Action,Struts2会去默认的命名空间(空字符串"/")下查找。如果仍未找到,系统会返回错误信息,表示找不到对应的Action。 Struts2是一个强大的MVC框架,它提供了一系列的功能来简化Web应用的开发,包括: - 页面导航管理,帮助组织和控制应用程序的流程。 - 输入数据验证,确保用户提交的数据符合预期。 - 统一的页面布局,提升用户体验和界面一致性。 - 支持可扩展性,允许添加自定义的插件和组件。 - 国际化和本地化,使应用能适应不同的语言环境。 - 集成了Ajax支持,提供动态交互的网页功能。 - 防止表单的重复提交,避免数据处理错误。 Struts2相较于其前身Struts1,有显著的优势: 1. 无侵入式设计:Struts2的应用程序并不直接依赖ServletAPI和StrutsAPI,降低了耦合度。 2. 拦截器机制:通过拦截器实现面向切面编程(AOP),如权限拦截,增强了灵活性。 3. 类型转换器:自动将请求参数转换为所需类型,减少了开发者的工作量。 4. 多种视图技术支持:如JSP、FreeMarker、Velocity等,让开发者可以根据需求选择合适的表现层技术。 5. 输入验证:可以在特定方法级别进行输入验证,提升了验证的针对性。 6. 国际化资源管理:支持全局、包级和Action级的国际化资源文件,便于资源管理和维护。 从Struts1迁移到Struts2时,由于两者在设计上有较大差异,实际上更像是从一个完全不同的框架(WebWork)进行转换。因此,升级过程需要考虑现有代码的重构和适配。