Struts框架中Action的跳转完全解析

需积分: 9 3 下载量 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应用至关重要。