Struts1 跳转技术详解
需积分: 14 11 浏览量
更新于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
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程