Struts1 跳转技术详解
需积分: 14 40 浏览量
更新于2024-09-17
2
收藏 29KB DOC 举报
"本文档主要介绍了在Struts1框架中实现页面跳转的各种方法,包括完整Action和仅有Form的Action两种情况。"
在Struts1框架中,页面跳转是通过配置struts-config.xml文件和Action类来实现的,主要用于处理用户请求并决定下一步的展示页面。以下是两种常见的跳转方式:
1. 完整的Action跳转:
在这个配置中,`<action>`标签包含了完整的处理逻辑。例如:
```xml
<action path="/aFullAction"
type="somePackage.someActionClass">
<param name="someForm" />
<forward name="successful" path="someJSP.jsp"/>
<forward name="failed" path="someOtherJSP.jsp"/>
</action>
```
在这个配置中,Struts的ActionServlet首先会根据请求的路径找到对应的Action Mapping。如果在请求范围内找不到名为"someForm"的Form Bean,它会创建一个新的实例。接着,调用Form Bean的`reset()`方法,再将表单数据填充到Form Bean中。如果validate属性(默认为true)设置为非false,那么会调用validate()方法进行表单验证。如果validate()返回的ActionErrors不为空,表示验证失败,用户会被重定向到`input`属性指定的"someJSP.jsp"。若验证成功且execute()方法执行后返回的ActionForward指定的名称匹配"successful",则用户会被转发到"someJSP.jsp";如果匹配"failed",则转发到"someOtherJSP.jsp"。这意味着`execute()`方法只有在`validate()`成功后才会被执行。
2. 仅有Form的Action跳转:
这种配置下,Action类不再包含业务逻辑,而是直接使用`org.apache.struts.actions.ForwardAction`。例如:
```xml
<action path="/aFormOnlyAction"
type="org.apache.struts.actions.ForwardAction"
name="someForm"
input="someJSP.jsp"
parameter="someOtherJSP.jsp"
/>
```
在这种情况下,Struts会查找定义的scope(通常是session或request)以获取或创建"someForm"的Form Bean实例,然后进行相同的数据填充和验证过程。如果验证失败,同样会转向`input`属性指定的"someJSP.jsp"。如果验证成功,用户会被直接转发到`parameter`属性指定的"someOtherJSP.jsp",而不会执行任何自定义的Action类中的业务逻辑。这种方式适用于无需额外业务处理的简单场景。
总结来说,Struts1的页面跳转机制提供了灵活的方式来进行请求处理和页面流转,通过配置struts-config.xml文件可以实现多种跳转策略,以适应不同的应用需求。理解并熟练掌握这些跳转方法对于开发基于Struts1的Web应用程序至关重要。
2019-08-11 上传
2012-11-17 上传
2008-06-23 上传
2009-12-23 上传
2009-05-14 上传
2019-03-31 上传
2009-03-12 上传
caysin
- 粉丝: 35
- 资源: 41
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍