Struts框架中Action的跳转完全解析
需积分: 9 116 浏览量
更新于2025-01-07
收藏 4KB TXT 举报
"我的笔记整理了Struts架构中action的各种跳转方式,包括基本的action、form action以及Action action的详细解释。"
在Struts框架中,Action是核心组件,负责处理用户请求并进行业务逻辑处理。这篇笔记主要讨论了三种不同类型的Action跳转方式。
1. 基本Action(action标签)
这种类型的Action定义在`struts-config.xml`配置文件中,通过`<action>`标签来声明。例如:
```xml
<action path="/aFullAction"
type="somePackage.someActionClass">
<param name="someForm">formBeanName</param>
<forward name="successful" path="someJSP.jsp"/>
<forward name="failed" path="someOtherJSP.jsp"/>
</action>
```
在这个例子中,`/aFullAction`是请求路径,`somePackage.someActionClass`指定Action类。`name`属性用于指定表单bean的名字,`input`属性指定了当验证失败时要跳转的页面。`<forward>`标签定义了成功和失败两种情况下的转发页面。
当一个请求被Struts ActionServlet接收到,它会根据`struts-config.xml`中的映射找到对应的Action,然后创建Action实例。Action实例的`execute()`方法会被调用,如果在执行过程中调用了`validate()`方法并且返回了错误,那么`input`属性指定的页面将被转发;如果`validate()`没有返回错误,`execute()`方法执行后,根据`<forward>`标签的`name`属性值决定转发到哪个页面。
2. Form Action(form action标签)
Form Action主要用于处理只涉及到表单提交的情况,不需要额外的业务逻辑处理。示例代码如下:
```xml
<action path="/aFormOnlyAction"
type="org.apache.struts.actions.ForwardAction"
name="someForm"
input="someJSP.jsp"
parameter="someOtherJSP.jsp" />
```
这里的`type`属性设置为`org.apache.struts.actions.ForwardAction`,表示直接转发到`parameter`属性指定的页面,而不需要调用Action的`execute()`方法。`input`属性同样用于验证失败后的回退页面。
3. Action Action
Action Action是直接执行特定Action类的方法,不涉及表单。配置如下:
```xml
<action path="/anActionOnlyAction"
type="somePackage.someActionClass" />
```
在这种情况下,Struts会调用Action类的`execute()`方法,执行相应的业务逻辑,然后根据业务结果决定如何跳转。
总结来说,Struts中的Action跳转方式多样,可以根据具体需求选择合适的方式。基本Action提供了完整的处理流程,包括验证和业务处理;Form Action简化了流程,适用于简单的表单提交;而Action Action则更灵活,适用于复杂的业务场景。理解并熟练掌握这些跳转方式,对于开发基于Struts的Web应用至关重要。
200 浏览量
点击了解资源详情
点击了解资源详情
2024-07-26 上传
123 浏览量
点击了解资源详情
117 浏览量
点击了解资源详情
「已注销」
- 粉丝: 0
- 资源: 6
最新资源
- pdf查-看/编-辑神器 pro版本 懂得都懂
- HTU21D:这是一个用于 HTU21D、Si7021 和 SHT21 数字温湿度传感器的 Arduino 库
- mdp(马尔可夫决策过程)2009年matlab源码,非常详细全面,非常实用
- question-lab-api:用于问题解决系统的NodeJStypescript API
- CRAFTY:代理功能类型之间的资源竞争-开源
- AHT10驱动程序 (有STM32整个工程)
- photoscan:Agisoft Photoscan 的 Python 脚本
- springboot+shiro+mybatis+Thymeleaf实现用户权限框架
- latihan5
- Text-Based-Fantasy-Game-0.0.01:超级测试版
- ERP软件 小管家ERP v5.5.11
- SDLDevil:经典血统等级编辑器的源端口-开源
- CS-Notes:力扣刷题记录~坚持面向offer刷题~
- BazinEngine:自定义OpenGL引擎
- zdtestpol51bdd
- redditCloneApp:这是站点reddit.com的克隆,该站点基本上是一个讨论站点。 该克隆完全使用本机Salesforce Lightning Framework构建